If Windows Server Update Services (WSUS) downloads are slow you can try to reconfigure Background Intelligent Transfer Service (BITS).
Learn to reconfigure BITS in WSUS to use foreground priority if downloads are slowish.
When to use foreground or background BITS priority
The default Background Intelligent Transfer Service (BITS) mode for WSUS is background priority mode. As written in Microsoft Docs:
Unless the job is time critical or the user is actively waiting, you should always use a background priority. However, there are times when you may want to switch from background priority to foreground priority.
If you feel your Windows Server Update Services updates download take too long to complete, you can switch to foreground priority. This may speed up WSUS.
Speed up Windows Update downloads from WSUS by switching to BITS foreground priority
So, to speed up the download of Windows Updates from your WSUS server through BITS, configure it to foreground priority. In Powershell you can do this quite easily:
$Configuration=(Get-WSUSServer).GetConfiguration()
$Configuration.BitsDownloadPriorityForeground=$True
$Configuration.Save()
(get-wsusserver).GetConfiguration()
Whenever you want to switch back to normal background BITS priority, set BitsDownloadPriorityForeground back to $false.
You can get its current value using:
(get-wsusserver).GetConfiguration().BitsDownloadPriorityForeground
This shows whether the setting is enabled (True) or not (False).
Force WSUS to download and install updates
Somewhat related to speeding up WSUS downloads is to force WSUS to actually download updates. This is accomplished using various methods:
- PowerShell PSWindowsUpdate module, and in particular Install-WindowsUpdate cmdlet.
- Run UsoClient.exe on the client and scan for new updates:
Start-Process -NoNewWindow "c:\windows\system32\UsoClient.exe" -argument "StartScan" -WaitandStart-Process -NoNewWindow "c:\windows\system32\UsoClient.exe" -argument "StartDownload" -Wait - Get WSUS updates by status using Get-WsusUpdate:
Get-WsusUpdate -Classification All -Approval Unapproved -Status FailedOrNeeded - Reset Content (WSUSUtil): This forces the server to check for missing files and download them. Open Command Prompt as Administrator, navigate to
cd "C:\Program Files\Update Services\Tools", and run:wsusutil.exe reset.
UsoClient.exe command-line parameters
The UsoClient.exe utility has the following known command-prompt arguments or parameters:
UsoClient.exe, I found that there are more switches which can be used:
- StartScan – Used to start a scan
- StartDownload – Used to start download of patches and updates
- StartInstall – Used to install downloaded patches and updates
- RefreshSettings – Refresh settings if any changes were made
- StartInteractiveScan – May ask for user input and / or open dialogues to show progress or report errors
- RestartDevice – Restart device to finish installation of updates
- ScanInstallWait – Combined scan download install
- ResumeUpdate – Resume update installation on boot
Source: Command Line Equivalent of wuauclt in Windows 10 / Windows Server 2016.
Summary
- To improve slow WSUS downloads, reconfigure BITS for foreground priority.
- Switching to BITS download foreground may speed up Windows updates from WSUS.
- Use PowerShell commands to force WSUS to download and install updates efficiently.
- Useful UsoClient.exe commands include StartScan, StartDownload, and StartInstall for managing updates.
- Reset BITS to normal background priority by setting BitsDownloadPriorityForeground to $false.