<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Random Musings of Jeremy Jameson : WSUS</title><link>http://blogs.msdn.com/jjameson/archive/tags/WSUS/default.aspx</link><description>Tags: WSUS</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Forced to Decline KB948014 and KB972493 in WSUS</title><link>http://blogs.msdn.com/jjameson/archive/2009/12/08/forced-to-decline-kb948014-and-kb972493-in-wsus.aspx</link><pubDate>Tue, 08 Dec 2009 15:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9934097</guid><dc:creator>Jeremy Jameson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jjameson/comments/9934097.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jjameson/commentrss.aspx?PostID=9934097</wfw:commentRss><description>&lt;P&gt;In &lt;A href="http://blogs.msdn.com/jjameson/archive/2009/12/07/error-installing-kb-970892-when-reporting-services-configured-with-domain-account.aspx" mce_href="http://blogs.msdn.com/jjameson/archive/2009/12/07/error-installing-kb-970892-when-reporting-services-configured-with-domain-account.aspx"&gt;last night's post&lt;/A&gt;, I discussed the solution for an issue I encountered installing &lt;A href="http://support.microsoft.com/kb/970892" mce_href="http://support.microsoft.com/kb/970892"&gt;KB 970892&lt;/A&gt; on one of my servers. Thankfully, this morning I confirmed the server no longer increments the &lt;STRONG&gt;Computers with Errors&lt;/STRONG&gt; column in the daily report I receive from Windows Server Update Services (WSUS).&lt;/P&gt;
&lt;P&gt;I should also mention that in order to get my WSUS report to come up completely clean, I had to decline the the following updates:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Description of the Windows Server Update Services 3.0 Service Pack 1 package&lt;BR&gt;&lt;/STRONG&gt;&lt;A href="http://support.microsoft.com/kb/948014" mce_href="http://support.microsoft.com/kb/948014"&gt;http://support.microsoft.com/kb/948014&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Windows Server Update Services 3.0 SP2 Dynamic Installer for Server Manager&lt;BR&gt;&lt;/STRONG&gt;&lt;A href="http://support.microsoft.com/kb/972493" mce_href="http://support.microsoft.com/kb/972493"&gt;http://support.microsoft.com/kb/972493&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;To be perfectly frank, I am actually rather disappointed that there doesn't seem to be any alternative to declining these updates altogether.&lt;/P&gt;
&lt;P&gt;Up until I declined these two updates, my WSUS server complained each morning that four of my servers were not 100% patched (even though I have configured a Group Policy to automatically download and install updates every morning). The four servers that it complained about are all running Windows Server 2008.&lt;/P&gt;
&lt;P&gt;Apparently there are known issues with these two updates -- both of which are for WSUS -- that cause them to be detected for install even on servers that are not running WSUS. [I suppose to be perfectly fair, the whole point of KB972493 is to allow you to more easily install WSUS by simply enabling a server role.]&lt;/P&gt;
&lt;P&gt;The problem with KB 972493 started after installing Windows Server 2008 Service Pack 2 (SP2), because that includes the prerequisite patch (&lt;A href="http://support.microsoft.com/kb/940518" mce_href="http://support.microsoft.com/kb/940518"&gt;KB 940518&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;My initial attempt at resolving the warnings in WSUS was to create a separate computer group under my existing &lt;STRONG&gt;Technology Toolbox &lt;/STRONG&gt;group called &lt;STRONG&gt;WSUS Servers&lt;/STRONG&gt;. I then moved COLOSSUS (my one and only WSUS server) to this new group and approved the aforementioned patches on that group alone.&lt;/P&gt;
&lt;P&gt;Sadly, the current version of WSUS does not provide a way to decline updates for a specific group only. Instead the approval field is simply &lt;STRONG&gt;Not Approved &lt;/STRONG&gt;for all computers groups except &lt;STRONG&gt;WSUS Servers&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Consequently, Windows Update would detect these two patches for install, but the subsequent install would refuse to actually apply the patches -- thus perpetually leaving all of my Windows Server 2008 SP2 servers that are not running WSUS with a "99%" &lt;STRONG&gt;Installed/Not Applicable Percentage&lt;/STRONG&gt; (and also causing them to appear in the &lt;STRONG&gt;Computers Needing Updates &lt;/STRONG&gt;columns in the daily WSUS report).&lt;/P&gt;
&lt;P&gt;I really wish there were some other way to resolve the issue without declining the updates altogether -- but I certainly couldn't find one, and based on a number of support cases I read regarding similar issues, this seems to be the recommended solution.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9934097" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jjameson/archive/tags/WSUS/default.aspx">WSUS</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/Infrastructure/default.aspx">Infrastructure</category></item><item><title>Enforcing Windows Update via Group Policy</title><link>http://blogs.msdn.com/jjameson/archive/2009/10/15/enforcing-windows-update-via-group-policy.aspx</link><pubDate>Thu, 15 Oct 2009 12:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9907637</guid><dc:creator>Jeremy Jameson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jjameson/comments/9907637.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jjameson/commentrss.aspx?PostID=9907637</wfw:commentRss><description>&lt;P&gt;Another Group Policy object that I use in the &lt;A href="http://blogs.msdn.com/jjameson/archive/2009/09/14/the-jameson-datacenter.aspx" mce_href="http://blogs.msdn.com/jjameson/archive/2009/09/14/the-jameson-datacenter.aspx"&gt;"Jameson Datacenter"&lt;/A&gt; (a.k.a. my home lab) is one to automatically configure Windows Update on all computers in the domain. This ensures that each server or workstation downloads updates from COLOSSUS (one of my VMs that is running Windows Server Update Services) rather than having each computer download, for example, a &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=656c9d4a-55ec-4972-a0d7-b1a6fedf51a7&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=656c9d4a-55ec-4972-a0d7-b1a6fedf51a7&amp;amp;displaylang=en"&gt;577 MB service pack&lt;/A&gt; directly from the Internet. It also ensures that only the updates that I have approved through WSUS are applied.&lt;/P&gt;
&lt;P&gt;To automatically configure Windows Update in the "Jameson Datacenter", I have defined a Group Policy (named &lt;STRONG&gt;Default Windows Update Policy&lt;/STRONG&gt;) with the following settings:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Computer Configuration&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Policies&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Administrative Templates&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Windows Components&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Windows Update&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Configure Automatic Updates&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Enabled&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Configure automatic updating: 4 -Auto download and schedule the install&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Scheduled install day: 0 - Every day&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Scheduled install time: 03:00&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Specify intranet Microsoft update service location&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Enabled&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Set the intranet update service for detecting updates: http://colossus&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Set the intranet statistics server: http://colossus&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;By linking this Group Policy to the entire domain (i.e. &lt;STRONG&gt;corp.technologytoolbox.com&lt;/STRONG&gt;) Windows Update is automatically configured as soon as new computers are joined to the domain and rebooted.&lt;/P&gt;
&lt;P&gt;This enables me to spin up new VMs with very little effort. More importantly, it takes less than a half hour to get a new Windows Server 2008 VM with all the latest patches (since I start from a &lt;A href="http://blogs.msdn.com/jjameson/archive/2009/08/13/using-sysprep-ed-vhds-for-new-hyper-v-virtual-machines.aspx" mce_href="http://blogs.msdn.com/jjameson/archive/2009/08/13/using-sysprep-ed-vhds-for-new-hyper-v-virtual-machines.aspx"&gt;SysPrep'ed VHD&lt;/A&gt; with Windows Server 2008 Service Pack 2).&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9907637" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jjameson/archive/tags/My+System/default.aspx">My System</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/Simplify/default.aspx">Simplify</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/WSUS/default.aspx">WSUS</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/Infrastructure/default.aspx">Infrastructure</category></item><item><title>Errors Installing Windows Server 2008 SP2</title><link>http://blogs.msdn.com/jjameson/archive/2009/06/01/errors-installing-windows-server-2008-sp2.aspx</link><pubDate>Mon, 01 Jun 2009 17:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9678127</guid><dc:creator>Jeremy Jameson</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/jjameson/comments/9678127.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jjameson/commentrss.aspx?PostID=9678127</wfw:commentRss><description>&lt;P&gt;Last week I approved Windows Server 2008 Service Pack 2 (SP2) and Windows Vista SP2 on my local WSUS (Windows Server Update Services) server. My expectation was that the various physical and virtual machines in the &lt;A href="http://blogs.msdn.com/jjameson/archive/2009/09/14/the-jameson-datacenter.aspx" mce_href="http://blogs.msdn.com/jjameson/archive/2009/09/14/the-jameson-datacenter.aspx"&gt;"Jameson Datacenter"&lt;/A&gt; would subsequently install the update around 3:00 AM the following morning.&lt;/P&gt;
&lt;P&gt;Unfortunately when I examined the WSUS console this morning, I found a number of computers reporting errors. After selecting one of the failed computers, I discovered the following:&lt;/P&gt;
&lt;BLOCKQUOTE class=directQuote&gt;
&lt;P&gt;Windows Server 2008 Service Pack 2 Standalone x64-based Systems (KB948465) - English, French, German, Japanese, Spanish&lt;/P&gt;
&lt;P&gt;Event reported at 6/1/2009 3:02 AM:&lt;/P&gt;
&lt;P&gt;Installation Failure: Windows failed to install the following update with error 0x80070643: Windows Server 2008 Service Pack 2 Standalone x64-based Systems (KB948465) - English, French, German, Japanese, Spanish.&lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;A quick search for 0x80070643 led to the following KB article:&lt;/P&gt;
&lt;DIV class=reference&gt;&lt;CITE&gt;You receive error code 0x80070643 or error code 0x643 when you use the Windows Update or Microsoft Update Web sites to install updates&lt;/CITE&gt; 
&lt;DIV class=referenceLink&gt;&lt;A href="http://support.microsoft.com/kb/958052" mce_href="http://support.microsoft.com/kb/958052"&gt;http://support.microsoft.com/kb/958052&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Unfortunately, this error code indicates "generic errors that basically state that an error was encountered by Windows Installer." Rather than immediately following the steps in the KB article to enable logging and try to reproduce the problem, I decided to take a quick look at the event logs and discovered the following:&lt;/P&gt;
&lt;BLOCKQUOTE class=directQuote&gt;Log Name: System&lt;BR&gt;Source: Microsoft-Windows-Service Pack Installer&lt;BR&gt;Date: 6/1/2009 3:02:00 AM&lt;BR&gt;Event ID: 8&lt;BR&gt;Task Category: None&lt;BR&gt;Level: Error&lt;BR&gt;Keywords: &lt;BR&gt;User: SYSTEM&lt;BR&gt;Computer: dazzler.corp.technologytoolbox.com&lt;BR&gt;Description:&lt;BR&gt;Service Pack installation failed with error code 0x800f0826.&lt;BR&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Another quick search for 0x800f0826 suggested that the problem might be due to insufficient disk space. However, I checked the free space on DAZZLER and observed that it had 4.09 GB free. Surely, 4 GB of disk space is sufficient to install Windows Server 2008 SP2!&lt;/P&gt;
&lt;P&gt;Then I came across the following:&lt;/P&gt;
&lt;DIV class=reference&gt;&lt;CITE&gt;Windows Server 2008 SP2 Deployment Guide&lt;/CITE&gt; 
&lt;DIV class=referenceLink&gt;&lt;A href="http://technet.microsoft.com/en-us/library/dd351467(WS.10).aspx" mce_href="http://technet.microsoft.com/en-us/library/dd351467(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/dd351467(WS.10).aspx&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Here are the disk space requirements according to the deployment guide:&lt;/P&gt;
&lt;TABLE class=accent1 cellSpacing=0 class="accent1"&gt;
&lt;CAPTION&gt;Disk Space Requirements for Windows Server 2008 SP2&lt;/CAPTION&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH&gt;Installation method&lt;/TH&gt;
&lt;TH&gt;Approximate disk space requirements&lt;/TH&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Stand-alone installation&lt;/TD&gt;
&lt;TD&gt;
&lt;UL&gt;
&lt;LI&gt;x86-based: 1.8 GB to 2.9 GB&lt;/LI&gt;
&lt;LI&gt;x64-based: 3.2 GB to 4.9 GB&lt;/LI&gt;
&lt;LI&gt;ia64-based: 2.9 GB to 3.2 GB &lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Windows Update&lt;/TD&gt;
&lt;TD&gt;
&lt;UL&gt;
&lt;LI&gt;x86-based: 350 MB&lt;/LI&gt;
&lt;LI&gt;x64-based: 600 MB&lt;/LI&gt;
&lt;LI&gt;ia64-based: 2.25 GB &lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Integrated installation&lt;/TD&gt;
&lt;TD&gt;
&lt;UL&gt;
&lt;LI&gt;x86-based: 9 GB&lt;/LI&gt;
&lt;LI&gt;x64-based: 12 GB&lt;/LI&gt;
&lt;LI&gt;ia64-based: 13 GB&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Crikey! According to this table, DAZZLER needs up to 4.9 GB of free space in order to install the Service Pack (since it is an x64 VM). Wow!&lt;/P&gt;
&lt;P&gt;This, quite honestly, seems absolutely absurd!&lt;/P&gt;
&lt;P&gt;However, given that it is relatively easy to expand a VHD, I decided to just go ahead and add another 2 GB to the system drive on the VM and see if that eliminated the issue. After all, as long as SP2 doesn't actually use 4.9 GB of space, then the actual physical space consumed by the VHD should be significantly less than 5 GB.&lt;/P&gt;
&lt;P&gt;Using &lt;STRONG&gt;Hyper-V Manager&lt;/STRONG&gt;, I expanded the VHD from 20 GB to 22 GB and then started the VM up again. I then logged into the VM and used the &lt;STRONG&gt;Disk Management &lt;/STRONG&gt;console to extend the volume to include the additional 2 GB of available storage.&lt;/P&gt;
&lt;P&gt;Next, I kicked off the installation of Windows Server 2008 SP2 again. This time the installation completed without error. Woohoo!&lt;/P&gt;
&lt;P&gt;Note that DAZZLER is a dedicated Team Foundation Server "build server" -- so I didn't expect that it would need lots of disk space. In fact, it didn't -- at least not until Windows Server 2008 SP2 came along.&lt;/P&gt;
&lt;P&gt;Now all I have to do is add some more disk space to the other servers that are failing to install SP2.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9678127" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jjameson/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/WSUS/default.aspx">WSUS</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/Infrastructure/default.aspx">Infrastructure</category></item><item><title>WSUS Server Cleanup Wizard Hangs on "Deleting unused updates..."</title><link>http://blogs.msdn.com/jjameson/archive/2009/03/28/wsus-server-cleanup-wizard-hangs-on-deleting-unused-updates.aspx</link><pubDate>Sat, 28 Mar 2009 15:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9515904</guid><dc:creator>Jeremy Jameson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jjameson/comments/9515904.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jjameson/commentrss.aspx?PostID=9515904</wfw:commentRss><description>&lt;P&gt;While cleaning off my Desktop this morning, I came across a file that I created back in December capturing my notes from a problem I was having with Windows Server Update Services (WSUS). Evidently I intended to blog about the issue, but apparently this task kept getting pushed to the back burner. Before moving on to more fun things today, I thought I should get this off my to-do list.&lt;/P&gt;
&lt;P&gt;Back in December, I noticed that my local WSUS server showed that I had &lt;EM&gt;24,890&lt;/EM&gt; updates downloaded and available for install. I remember thinking something to the effect of: "Wow, that's a lot of updates!"&lt;/P&gt;
&lt;P&gt;Looking at my &lt;STRONG&gt;C:\WSUS&lt;/STRONG&gt; folder (where the updates are downloaded), I found that it contained the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;51.4 GB of content&lt;/LI&gt;
&lt;LI&gt;6,509 files in 258 folders&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I then ran the WSUS &lt;STRONG&gt;Server Cleanup Wizard&lt;/STRONG&gt; as I had attempted (unsuccessfully) on several occasions in the past, selecting all of the options:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Unused updates and update revisions&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Computers not contacting the server&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Unneeded update files&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Expired updates&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Superseded updates&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;As with my previous attempts, the cleanup appeared to hang on the following step:&lt;/P&gt;
&lt;BLOCKQUOTE class=directQuote&gt;Deleting unused updates...&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I decided that I should try to show a little more patience than I had in the past and consequently let it run for over 24 hours (thinking it might eventually finish). You can imagine my frustration when I came back the next morning only to find that it was still &lt;Q&gt;"Deleting unused updates..."&lt;/Q&gt;&lt;/P&gt;
&lt;P&gt;I then tried running the WsusDBMaintenance SQL script -- hoping that might somehow help the situation. Unfortunately, when I ran the &lt;STRONG&gt;Server Cleanup Wizard&lt;/STRONG&gt; again, I got the same result (i.e. it hung on the &lt;Q&gt;"Deleting unused updates..."&lt;/Q&gt; step).&lt;/P&gt;
&lt;P&gt;I then ran the &lt;STRONG&gt;Server Cleanup Wizard&lt;/STRONG&gt; once again, but this time only selecting the first option (&lt;STRONG&gt;Unused updates and update revisions&lt;/STRONG&gt;). While it was still very, very slow on the &lt;Q&gt;"Deleting unused updates..."&lt;/Q&gt; step, I was able to verify (via the progress bar) that it was in fact progressing. I let it run to completion and observed the following results when it was finished:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;Unused updates deleted 3082&lt;BR&gt;Unused update revisions deleted: 5448 &lt;/BLOCKQUOTE&gt;
&lt;P&gt;I then ran the &lt;STRONG&gt;Server Cleanup Wizard&lt;/STRONG&gt; again, but this time only selecting the third option (&lt;STRONG&gt;Unneeded update files&lt;/STRONG&gt;). When that was finished, I observed the following:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;Disk space freed by deleting unused content files: 15441 MB&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I confirmed this by rescanning my &lt;STRONG&gt;C:\WSUS&lt;/STRONG&gt; folder:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;36.3 GB of content&lt;/LI&gt;
&lt;LI&gt;4,285 files in 258 folders&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Since December, I have been able to run the &lt;STRONG&gt;Server Cleanup Wizard&lt;/STRONG&gt; repeatedly with all of the options selected, and it usually completes in a matter of minutes. For some reason, it was only that first time through that I needed to run the steps individually to avoid the hang. Go figure.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9515904" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jjameson/archive/tags/WSUS/default.aspx">WSUS</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/Infrastructure/default.aspx">Infrastructure</category></item><item><title>Backing Up User Databases in SQL Server (and SQL Server Express)</title><link>http://blogs.msdn.com/jjameson/archive/2008/05/30/backing-up-user-databases-in-sql-server-and-sql-server-express.aspx</link><pubDate>Fri, 30 May 2008 17:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8563270</guid><dc:creator>Jeremy Jameson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jjameson/comments/8563270.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jjameson/commentrss.aspx?PostID=8563270</wfw:commentRss><description>&lt;P&gt;Since I appear to be on a roll with my blog this morning, I figured that I should write one more post about SQL Server before I get back to my "day job."&lt;/P&gt;
&lt;P&gt;I typically use SQL Server Management Studio to configure and schedule database backups, because the&lt;STRONG&gt; Maintenance Plan Wizard&lt;/STRONG&gt; makes&lt;STRONG&gt; &lt;/STRONG&gt;it very quick and easy to click through a few screens and select the appropriate options. However, on some of the servers running in the &lt;A href="http://blogs.msdn.com/jjameson/archive/2009/09/14/the-jameson-datacenter.aspx" mce_href="http://blogs.msdn.com/jjameson/archive/2009/09/14/the-jameson-datacenter.aspx"&gt;"Jameson Datacenter"&lt;/A&gt; (a.k.a. my basement), I only have SQL Server Express installed, not the full SQL Server product. For example, on my server that runs Windows Server Update Services (WSUS), I use SQL Server Express as the "backend" storage solution, because for this particular scenario, I want to keep the database local instead of relying on a separate server. However, I still want to ensure that I have periodic backups of the databases.&lt;/P&gt;
&lt;P&gt;In order to make this as painless as possible, I wrote the following script:&lt;/P&gt;
&lt;DIV class=codeBlock&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: #0000ff"&gt;USE&lt;/SPAN&gt; [Tools]
GO
&lt;SPAN style="COLOR: #008000"&gt;/****** Object:  StoredProcedure [dbo].[BackupUserDatabases]    Script Date: 03/15/2007 07:55:44 ******/
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;SET&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;ANSI_NULLS&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;ON
&lt;/SPAN&gt;GO
&lt;SPAN style="COLOR: #0000ff"&gt;SET&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;QUOTED_IDENTIFIER&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;ON
&lt;/SPAN&gt;GO
&lt;SPAN style="COLOR: #0000ff"&gt;CREATE&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;PROC&lt;/SPAN&gt; [dbo]&lt;SPAN style="COLOR: #808080"&gt;.&lt;/SPAN&gt;[BackupUserDatabases]
&lt;SPAN style="COLOR: #808080"&gt;(
&lt;/SPAN&gt;    @backupType &lt;SPAN style="COLOR: #0000ff"&gt;VARCHAR&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;15&lt;SPAN style="COLOR: #808080"&gt;)
)
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;AS

DECLARE&lt;/SPAN&gt; @backupFolder &lt;SPAN style="COLOR: #0000ff"&gt;VARCHAR&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;255&lt;SPAN style="COLOR: #808080"&gt;)

&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;SET&lt;/SPAN&gt; @backupFolder &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'C:\BackedUp\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\'&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @backupType

&lt;SPAN style="COLOR: #0000ff"&gt;DECLARE&lt;/SPAN&gt; @timestamp &lt;SPAN style="COLOR: #0000ff"&gt;DATETIME
DECLARE&lt;/SPAN&gt; @dateString &lt;SPAN style="COLOR: #0000ff"&gt;VARCHAR&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;8&lt;SPAN style="COLOR: #808080"&gt;)
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;DECLARE&lt;/SPAN&gt; @timeString &lt;SPAN style="COLOR: #0000ff"&gt;VARCHAR&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;12&lt;SPAN style="COLOR: #808080"&gt;)

&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;SELECT&lt;/SPAN&gt; @timestamp &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff00ff"&gt;GETDATE&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;()

&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;SELECT&lt;/SPAN&gt; @dateString &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff00ff"&gt;CONVERT&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;VARCHAR&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;8&lt;SPAN style="COLOR: #808080"&gt;),&lt;/SPAN&gt; @timestamp&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; 112&lt;SPAN style="COLOR: #808080"&gt;)

&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;SELECT&lt;/SPAN&gt; @timeString &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff00ff"&gt;CONVERT&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;VARCHAR&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;12&lt;SPAN style="COLOR: #808080"&gt;),&lt;/SPAN&gt; @timestamp&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; 14&lt;SPAN style="COLOR: #808080"&gt;)

&lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;-- Remove seconds from timestamp
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;SET&lt;/SPAN&gt; @timeString &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;LEFT(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff00ff"&gt;REPLACE&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;@timeString&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;':'&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;''&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;),&lt;/SPAN&gt; 4&lt;SPAN style="COLOR: #808080"&gt;)

&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;DECLARE&lt;/SPAN&gt; @databases &lt;SPAN style="COLOR: #0000ff"&gt;TABLE
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(
&lt;/SPAN&gt;    ID &lt;SPAN style="COLOR: #0000ff"&gt;INT&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;IDENTITY&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt; 1&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; 1 &lt;SPAN style="COLOR: #808080"&gt;)
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; DatabaseName &lt;SPAN style="COLOR: #0000ff"&gt;SYSNAME
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;)

&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;INSERT&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;INTO
&lt;/SPAN&gt;    @databases 
    &lt;SPAN style="COLOR: #0000ff"&gt;SELECT&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;name
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;FROM&lt;/SPAN&gt; master&lt;SPAN style="COLOR: #808080"&gt;.&lt;/SPAN&gt;dbo&lt;SPAN style="COLOR: #808080"&gt;.&lt;/SPAN&gt;sysdatabases 
    &lt;SPAN style="COLOR: #0000ff"&gt;WHERE&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;name&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;NOT&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;IN&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'master'&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'model'&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'msdb'&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'tempdb'&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;)

&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;DECLARE&lt;/SPAN&gt; @id &lt;SPAN style="COLOR: #0000ff"&gt;TINYINT
SELECT&lt;/SPAN&gt; @id &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff00ff"&gt;MIN&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt; ID &lt;SPAN style="COLOR: #808080"&gt;)&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;FROM&lt;/SPAN&gt; @databases

&lt;SPAN style="COLOR: #0000ff"&gt;WHILE&lt;/SPAN&gt; @id &lt;SPAN style="COLOR: #808080"&gt;IS&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;NOT&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;NULL&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;BEGIN
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;DECLARE&lt;/SPAN&gt; @databaseName &lt;SPAN style="COLOR: #0000ff"&gt;SYSNAME
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;SELECT&lt;/SPAN&gt; @databaseName &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; DatabaseName &lt;SPAN style="COLOR: #0000ff"&gt;FROM&lt;/SPAN&gt; @databases &lt;SPAN style="COLOR: #0000ff"&gt;WHERE&lt;/SPAN&gt; ID &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; @id

    &lt;SPAN style="COLOR: #0000ff"&gt;DECLARE&lt;/SPAN&gt; @backupFileName &lt;SPAN style="COLOR: #0000ff"&gt;VARCHAR&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;512&lt;SPAN style="COLOR: #808080"&gt;)
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;SELECT&lt;/SPAN&gt; @backupFileName &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; @databaseName &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'_backup_'&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt;@dateString &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @timeString &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'.bak'

&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;IF&lt;/SPAN&gt; @backupType &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'Full'
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;BEGIN
&lt;/SPAN&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;EXEC&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;'BACKUP DATABASE ['&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @databaseName &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'] TO DISK ='''&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @backupFolder &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'\'&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @BackupFileName &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;''''&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;)
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;END
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;ELSE&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;IF&lt;/SPAN&gt; @backupType &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'Differential'
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;BEGIN
&lt;/SPAN&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;EXEC&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;'BACKUP DATABASE ['&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @databaseName &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'] TO DISK ='''&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @backupFolder &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'\'&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @BackupFileName &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;''' WITH DIFFERENTIAL'&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;)
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;END
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;ELSE&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;IF&lt;/SPAN&gt; @backupType &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'Transaction Log'
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;BEGIN
&lt;/SPAN&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;DECLARE&lt;/SPAN&gt; @recoveryModel &lt;SPAN style="COLOR: #0000ff"&gt;SQL_VARIANT

&lt;/SPAN&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;SELECT&lt;/SPAN&gt; @recoveryModel &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff00ff"&gt;DATABASEPROPERTYEX&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;@databaseName&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'Recovery'&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;)

&lt;/SPAN&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;IF&lt;/SPAN&gt; @recoveryModel &lt;SPAN style="COLOR: #808080"&gt;&amp;lt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'SIMPLE'
&lt;/SPAN&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;BEGIN
&lt;/SPAN&gt;            &lt;SPAN style="COLOR: #0000ff"&gt;EXEC&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;'BACKUP LOG ['&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @databaseName &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'] TO DISK ='''&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @backupFolder &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;'\'&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; @BackupFileName &lt;SPAN style="COLOR: #808080"&gt;+&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;''''&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;)
&lt;/SPAN&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;END
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;END
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;ELSE
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;BEGIN
&lt;/SPAN&gt;        &lt;SPAN style="COLOR: #0000ff"&gt;RAISERROR&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;'Invalid backup type'&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; 16&lt;SPAN style="COLOR: #808080"&gt;,&lt;/SPAN&gt; 1&lt;SPAN style="COLOR: #808080"&gt;)
&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;END

&lt;/SPAN&gt;    &lt;SPAN style="COLOR: #0000ff"&gt;DELETE&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;FROM&lt;/SPAN&gt; @databases &lt;SPAN style="COLOR: #0000ff"&gt;WHERE&lt;/SPAN&gt; ID &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; @id

    &lt;SPAN style="COLOR: #0000ff"&gt;SELECT&lt;/SPAN&gt; @id &lt;SPAN style="COLOR: #808080"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff00ff"&gt;MIN&lt;/SPAN&gt; &lt;SPAN style="COLOR: #808080"&gt;(&lt;/SPAN&gt; ID &lt;SPAN style="COLOR: #808080"&gt;)&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;FROM&lt;/SPAN&gt; @databases
&lt;SPAN style="COLOR: #0000ff"&gt;END&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;Well, technically, it's a stored procedure, but nevertheless I still keep the script to generate the sproc in my toolbox: &lt;STRONG&gt;BackupUserDatabases.sql&lt;/STRONG&gt;. Notice that I create the sproc in a separate database (I arbitrarily chose the name &lt;STRONG&gt;Tools&lt;/STRONG&gt;).&lt;/P&gt;
&lt;P&gt;I can then schedule full, differential, and transaction log backups using scheduled tasks, as shown below.&lt;/P&gt;
&lt;DIV class=image&gt;&lt;IMG title="" alt="" src="http://blogs.msdn.com/photos/jjameson/images/8563260/500x99.aspx" width=500 height=99 mce_src="http://blogs.msdn.com/photos/jjameson/images/8563260/500x99.aspx"&gt; 
&lt;DIV class=caption&gt;Figure 1: Scheduled tasks for backing up databases&lt;/DIV&gt;
&lt;DIV class=imageLink&gt;&lt;A href="http://blogs.msdn.com/photos/jjameson/images/8563260/original.aspx" target=_blank mce_href="http://blogs.msdn.com/photos/jjameson/images/8563260/original.aspx"&gt;See full-sized image.&lt;/A&gt; &lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;Here is the command behind one of the scheduled tasks (you can easily deduce the others):&lt;/P&gt;
&lt;DIV class=consoleBlock&gt;&lt;SAMP&gt;"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S .\SQLExpress -d Tools -Q&lt;BR&gt;&amp;nbsp;&amp;nbsp; "EXEC BackupUserDatabases @backupType='Full'"&lt;/SAMP&gt; &lt;/DIV&gt;
&lt;P&gt;Lastly, note that I have a separate server periodically ROBOCOPY the backup files off of this server to another location -- just in case the WSUS server happens to catch on fire or some other act of God completely wipes out the local database backups ;-)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8563270" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jjameson/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/jjameson/archive/tags/WSUS/default.aspx">WSUS</category></item><item><title>WSUS Clients Failing with Error 0x80244019 After Installing WSUS SP1</title><link>http://blogs.msdn.com/jjameson/archive/2008/04/08/wsus-clients-failing-with-error-0x80244019-after-installing-wsus-sp1.aspx</link><pubDate>Tue, 08 Apr 2008 15:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8368925</guid><dc:creator>Jeremy Jameson</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/jjameson/comments/8368925.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jjameson/commentrss.aspx?PostID=8368925</wfw:commentRss><description>&lt;P&gt;Last week I discovered that many of my servers were no longer updating successfully from my intranet Windows Server Update Services (WSUS) server. Looking in WindowsUpdate.log file, I noticed errors similar to the following: &lt;/P&gt;
&lt;DIV class=consoleBlock&gt;&lt;SAMP&gt;2008-03-22 18:53:24:377 808 ba0 Misc WARNING: WinHttp: SendRequestToServerForFileInformation failed with 0x80190194&lt;BR&gt;2008-03-22 18:53:24:377 808 ba0 Misc WARNING: WinHttp: ShouldFileBeDownloaded failed with 0x80190194&lt;BR&gt;2008-03-22 18:53:24:377 808 ba0 Misc WARNING: DownloadFileInternal failed for http://colossus:8530/selfupdate/wuident.cab: error 0x80190194&lt;BR&gt;2008-03-22 18:53:24:377 808 ba0 Setup FATAL: IsUpdateRequired failed with error 0x80244019&lt;BR&gt;2008-03-22 18:53:24:377 808 ba0 Setup WARNING: SelfUpdate: Default Service: IsUpdateRequired failed: 0x80244019&lt;BR&gt;2008-03-22 18:53:24:377 808 ba0 Setup WARNING: SelfUpdate: Default Service: IsUpdateRequired failed, error = 0x80244019&lt;BR&gt;2008-03-22 18:53:24:377 808 ba0 Agent * WARNING: Skipping scan, self-update check returned 0x80244019&lt;BR&gt;2008-03-22 18:53:25:002 808 ba0 Agent * WARNING: Exit code = 0x80244019&lt;/SAMP&gt;&lt;/DIV&gt;
&lt;P&gt;Upon troubleshooting the problem, I discovered that the &lt;STRONG&gt;SelfUpdate&lt;/STRONG&gt; virtual directory was not configured on my WSUS server (i.e. the server named COLOSSUS). To resolve the issue, I used IIS Manager to create the &lt;STRONG&gt;SelfUpdate&lt;/STRONG&gt; virtual directory (using the local path &lt;STRONG&gt;C:\Program Files\Update Services\Selfupdate&lt;/STRONG&gt;). I then used &lt;KBD&gt;wuauclt /detectnow&lt;/KBD&gt; to force an update on one of my servers to confirm that this resolved the issue.&lt;/P&gt;
&lt;P&gt;A little post mortem analysis further revealed the following event on COLOSSUS:&lt;/P&gt;
&lt;BLOCKQUOTE class=directQuote&gt;Event Type: Information&lt;BR&gt;Event Source: MsiInstaller&lt;BR&gt;Event Category: None&lt;BR&gt;Event ID: 11724&lt;BR&gt;Date: 3/22/2008&lt;BR&gt;Time: 7:17:29 AM&lt;BR&gt;Computer: COLOSSUS&lt;BR&gt;Description:&lt;BR&gt;Product: Microsoft Windows Server Update Services 3.0 -- Removal completed successfully.&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Ah, yes...now it was all coming back to me. On the morning of March 22nd, I decided to install WSUS Service Pack 1 (SP1). Since I did not encounter any errors during the install, it appears that WSUS SP1 is the likely culprit for the missing &lt;STRONG&gt;SelfUpdate&lt;/STRONG&gt; virtual directory.&lt;/P&gt;
&lt;P&gt;Perhaps this only happens when you have WSUS installed on a non-standard port or when you have SharePoint installed on the WSUS server. As you can see in the excerpt from WindowsUpdate.log above, I am using port 8530 for the WSUS Web site. This is because COLOSSUS is currently running both WSUS and MOSS 2007.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8368925" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jjameson/archive/tags/WSUS/default.aspx">WSUS</category></item></channel></rss>