Important Update

  • Do NOT remove the “all” in the language script (Decline-Windows10Languages.ps1) as I did in the video at 25:14. If you run the script with the standalone WSUS option, removing the “all” language may cause some language-independent updates to be declined.
  • It’s recommended to first run the script with the -Whatif switch to determine the impact of running the script.


In this video guide, we will walk through the process of maintaining our WSUS catalog to reduce the catalog size and client scanning issues. In this guide, we will cover ensuring the IIS AppPool for WSUS is improved, indexing the SUSDB, setting up a task to run a script to automatically decline any superseded updates, change the wsyncmgr purge of expired updates from 7 days to 0. and compare the initial catalog download size on a client.

There’s a lot of good WSUS maintenance scripts out there now. In my video, I used Bryan Dam’s scriptSee the resources below for a lot of great information that will be helpful in addition to what I cover.

Script Resources

  • Scheduled Task Options for Bryan Dam’s WSUS Scripts
    • Program: powershell.exe
    • Argument: Please see the arguments section at the bottom of this post for an unformatted version of the arguments.

Topics in Video

Resources for This Guide:

Arguments for Scheduled Task:

Note: you will need to change the script path

-NoLogo -NoProfile -NonInteractive -ExecutionPolicy ByPass -command J:\Scripts\Invoke-DGASoftwareUpdateMaintenance.ps1 -DeclineSuperseded -UpdateListOutputFile J:\Scripts\DeclinedUpdates.csv -DeclineByTitle @('*Itanium*','*ia64*','*Beta*') -DeclineByPlugins -CleanSUGs -RemoveEmptySUGs -RunCleanUpWizard -Force