5 Ways to Install Windows Updates on Windows Server 2008 R2 Core

by Daniel Petri - February 23, 2010

As you probably know by now, in Windows Server 2008, the Server Core installation provides a minimal environment for running specific server roles, which reduces the maintenance and management requirements and the attack surface for those server roles (read more about Server Core on my "Understanding Windows Server 2008 Server Core" and "Installing Windows Server 2008 Core" articles).

One of the challenges of using Server Core is the management aspect. Luckily for us, most of the management pain has been solved by usage of the either manually created scripts, 3rd-party graphical user interface tools, and lately in R2 - the SCONFIG tool.

So after properly configuring Server Core and getting ready to deploy it on your server farm, you now want to download and install the latest Windows Server 2008 R2 updates from the Windows Update site. How do you do that?

Well, there are several methods which you can use to download and install the latest Windows Server 2008 R2 updates from the Windows Update site. Read on.

Method #1 - Manually Install Updates

In order to install updates you need to configure the Server Core machine to automatically download and install updates:

At a command prompt:

  • To verify the current setting, type:

cscript scregedit.wsf /AU /v

  • To enable automatic updates, type:

cscript scregedit.wsf /AU 4

  • To disable automatic updates, type:

cscript scregedit.wsf /AU 1

Problem with this setting is that you have no control over what updates are being downloaded and installed. Therefore, if you do not wish to enable auto updates, you can manually download each update from the Windows Update site, transfer them to the Core machine, and then manually installing them using msiexec.exe or wusa.exe:

Msiexec (command-line options)
http://technet.microsoft.com/en-us/library/cc759262(WS.10).aspx

Description of the Windows Update Stand-alone Installer (Wusa.exe) and of .msu files in Windows Vista and in Windows Server 2008
http://support.microsoft.com/kb/934307/en-us

Method #2 - Install from Script

You can also use the following script sample from MSDN:

Searching, Downloading, and Installing Updates: http://msdn.microsoft.com/en-us/library/aa387102(VS.85).aspx

Set updateSession = CreateObject("Microsoft.Update.Session")
Set updateSearcher = updateSession.CreateupdateSearcher()

WScript.Echo "Searching for updates..." & vbCRLF

Set searchResult = _
updateSearcher.Search("IsInstalled=0 and Type='Software'")

WScript.Echo "List of applicable items on the machine:"

For I = 0 To searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
WScript.Echo I + 1 & "> " & update.Title
Next

If searchResult.Updates.Count = 0 Then
WScript.Echo "There are no applicable updates."
WScript.Quit
End If

WScript.Echo vbCRLF & "Creating collection of updates to download:"

Set updatesToDownload = CreateObject("Microsoft.Update.UpdateColl")

For I = 0 to searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
WScript.Echo I + 1 & "> adding: " & update.Title
updatesToDownload.Add(update)
Next

WScript.Echo vbCRLF & "Downloading updates..."

Set downloader = updateSession.CreateUpdateDownloader()
downloader.Updates = updatesToDownload
downloader.Download()

WScript.Echo  vbCRLF & "List of downloaded updates:"

For I = 0 To searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
If update.IsDownloaded Then
WScript.Echo I + 1 & "> " & update.Title
End If
Next

Set updatesToInstall = CreateObject("Microsoft.Update.UpdateColl")

WScript.Echo  vbCRLF & _
"Creating collection of downloaded updates to install:"

For I = 0 To searchResult.Updates.Count-1
set update = searchResult.Updates.Item(I)
If update.IsDownloaded = true Then
WScript.Echo I + 1 & "> adding:  " & update.Title
updatesToInstall.Add(update)
End If
Next

WScript.Echo  vbCRLF & "Would you like to install updates now? (Y/N)"
strInput = WScript.StdIn.Readline
WScript.Echo

If (strInput = "N" or strInput = "n") Then
WScript.Quit
ElseIf (strInput = "Y" or strInput = "y") Then
WScript.Echo "Installing updates..."
Set installer = updateSession.CreateUpdateInstaller()
installer.Updates = updatesToInstall
Set installationResult = installer.Install()

'Output results of install
WScript.Echo "Installation Result: " & _
installationResult.ResultCode
WScript.Echo "Reboot Required: " & _
installationResult.RebootRequired & vbCRLF
WScript.Echo "Listing of updates installed " & _
"and individual installation results:"

For I = 0 to updatesToInstall.Count - 1
WScript.Echo I + 1 & "> " & _
updatesToInstall.Item(i).Title & _
": " & installationResult.GetUpdateResult(i).ResultCode
Next
End If

Copy the text found in the script, save it as WUA_SearchDownloadInstall.vbs in the system32 folder, and run:

cscript WUA_SearchDownloadInstall.vbs

Very cool indeed.

Method #3 - Use SCONFIG

As noted on my "Manage Windows Server 2008 R2 Core with SCONFIG" article, SCONFIG is a very nice tool that is now built into R2, that you can use to manage many aspects of the Server Core machine. One of these features is the ability to control the Windows Updates settings, and then use it to download updates and either selectively install them, or install them all at once.

To run SCONFIG simply enter sconfig.cmd in the command prompt window, and press Enter.

First, enable Automatic Updates by typing "5" and pressing Enter.

Type "a" and press Enter.

Next, type "6" to get SCONFIG to search and download missing updates.

You'll be able to install all missing updates, or just the recommended ones.

Method #4 - Visual Core Configurator 2008

Visual Core Configurator 2008 is a nice GUI-based tool created by Guillermo Musumeci. The tool is free to use, and can be obtained here:

CtxAdmTools - Visual Core Configurator 2008 v1.1

After downloading the tool, either copy the files to the Server Core machine, or if it's a virtual machine, use the ISO file download instead.

Run the tool.

Press on the "Windows Update" icon.

Press on the "Search for updates" button.

Select the updates you want to download and install, and press on the "Download and Install Updates" button.

Method #5 - Install Using Core Configurator 2.0

On of the first 3rd-party GUI tools for Server Core, this tool is free to use, and can be obtained here:

Core Configurator 2.0 (Windows Server 2008 R2)

Run Start_Coreconfig.wsf to start the tool.

The latest version of Core Configurator needs .NET Framework and PowerShell, which it will automatically install once the tool is executed.

You will be prompted to join the customer Experience Improvement Program. Accept or decline.

Press the "Control Panel" button.

Press the "Windows Updates" button.

First, you can configure the Auto Updates settings.

Then, press on the "Check for updates" link and press the "Download updates" button.

You can now select which updates to install.

Also remember that there are other 3rd-party update management tools. Do you have feedback about other updating methods you're using? Please send them over by using the feedback page or by clicking on my profile link.

Related Articles



Join The Petri Insider - Weekly IT Tutorial and Tips, Whitepaper and Webinars