Optimize-WsusServer.PS1
About The Project
Comprehensive Windows Server Update Services (WSUS) cleanup, optimization, maintenance, and configuration PowerShell script.
Free and open source: MIT License
Features
- Deep cleaning search and removal of unnecessary updates by product title and update title.
- Removal of device drivers from WSUS repository (greatly improves speed, reliability, and reduces storage space needed).
- IIS Configuration validation and optimization.
- Disable device driver synchronization and caching.
- WSUS integrated update and computer cleanup.
- Microsoft best practice WSUS database optimization and re-indexing.
- Creation of daily and weekly optimization scheduled tasks.
Table of Contents
Getting Started
Prerequisites
- PowerShell
- Windows Server Update Services (WSUS)
- SqlServer Official PowerShell module
- PowerShell 6 - Microsoft has not ported the WSUS module to PowerShell 7
- IIS Administration PowerShell module - Needed for Server 2012 R2
Installation
- Download Optimize-WsusServer.ps1
- From PowerShell run
Optimize-WsusServer.ps1 -FirstRun
Usage
Optimize-WsusServer.ps1 -FirstRun
Presents a series of prompts for user to initiate all recommended first run optimization tasks. Additional parameters will be ignored, as they will be redundant.
Optimize-WsusServer.ps1 -DisableDrivers
Disable device driver synchronization and caching.
Optimize-WsusServer.ps1 -DeepClean
Searches through most likely categories for unneeded updates and drivers to free up massive amounts of storage and improve database responsiveness. Prompts user to approve removal before deletion.
Optimize-WsusServer.ps1 -CheckConfig
Validates current WSUS IIS configuration against recommended settings. Helps prevent frequent WSUS/IIS/SQL service crashes and the "RESET SERVER NODE" error.
Optimize-WsusServer.ps1 -OptimizeServer
Runs all of Microsoft's built-in WSUS cleanup processes.
Optimize-WsusServer.ps1 -OptimizeDatabase
Runs Microsoft's recommended SQL reindexing script.
Optimize-WsusServer.ps1 -InstallDailyTask
Creates a scheduled task to run the OptimizeServer function nightly.
Optimize-WsusServer.ps1 -InstallWeeklyTask
Creates a scheduled task to run the OptimizeDatabase function weekly.
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Project Link: https://github.com/awarre/Optimize-WsusServer
References
- The complete guide to Microsoft WSUS and Configuration Manager SUP maintenance
- Windows Server Update Services best practices
- Reindex the WSUS Database
- 10 Tips for the SQL Server PowerShell Scripter
- How to Check if an Index Exists on a Table in SQL Server
- Getting 2016 updates to work on WSUS
- Examples of Comment-Based Help
- Get-IISSite
- Get-WebApplication
- Get-WsusClassification
- Get-WsusProduct
- Invoke-Sqlcmd
- Invoke-WsusServerCleanup
- ScheduledTasks
- Set-WsusClassification
- WSUS GetUpdates Method
- WSUS IUpdate Properties