Speeding up WSUS

1 minute read

Preface: All of this is untested, lacking benchmarks, purely qualitative, and seriously failing at all aspects of scientific method or rigour.

The following commands should do something in theory. The powershell is for WSUS 4.0/4.1. You also need to open the GPO and check the Computer -> Admin Templates -> Network -> BITS template for the download speed restrictions. With the restrictions appropriately set (or removed if you’re impatient like me, just remember to set them back); bits can be set to foreground mode (same as foreground mode all the way back to WSUS 2.0).

(Get-WSUSserver).GetConfiguration().BitsDownloadPriorityForeground=$true

Note that that command will only affect the in-memory instance of WSUS, restarting the service will wipe the setting. There’s a .SaveConfig() command you can run to persist the setting but I can’t attest to the effects.

Thanks to Tyrone Watt for the ps. BitsDownloadPriorityForeground isn’t listed in the IUpdateServerConfiguration interface, so god knows where the person he got it from…. got it from… cause the link’s dead…and waybackmachine shows his reference used the old sqlcmd method (which doesn’t work for WSUS 4.x)… see why I do this?

UPDATE: I found a little more info on the Foreground setting. According to a Microsoft docs France page it’s an internal/hotfix-ish (hence the poor public documentation) setting that does what it says on the tin.

This internal setting specifies whether or not to use foreground priority for BITS downloads. The default is to use throttled downloads. This setting was added to handle issues with certain proxy servers that did not correctly handle HTTP 1.1 restartable downloads.

Changing the BITS job to foreground does the following:

  1. Increases priority of the job (Duh)
  2. Downloads only happen as streams and they do not use content ranges. That means that the downloads are not restartable. That implies that if you’re downloading over a shoddy connection that it might actually be slower. Especially if you’re using express packages.
  3. Prevents BITS from downloading files over 2 GB?

I’m not sure how the WSUS engine handles all those limitations when the flag is set, it’s probably fine, and it’s also probably why it’s an internal setting. Just another reason that cargo-cult administration is often asking for problems.