?<#
Created: 2015-06-10
Version: 1.5
Author : Peter Lofgren
Twitter: @LofgrenPeter
Blog : http://syscenramblings.wordpress.com
Disclaimer:
This script is provided "AS IS" with no warranties, confers no rights and
is not supported by the author
#>
<#
.Synopsis
Does Cleanup of the WSUS database.
.DESCRIPTION
Will initiate a WSUS database cleanup and log output to a logfile.
.EXAMPLE
Cleanup-WSUS.ps1
.EXAMPLE
Cleanup-WSUS.ps1 -LogFile C:\WSUSLog\Cleanup.log
#>
[CmdletBinding(SupportsShouldProcess=$true)]
param (
[Parameter(Mandatory=$false)]
$logFile = "C:\Windows\Temp\Wsus.log"
)
Add-Content -Path $logFile -Value "$(get-date) Cleanup starting"
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer()
$cleanupScope = new-object Microsoft.UpdateServices.Administration.CleanupScope;
$cleanupScope.DeclineSupersededUpdates = $true
$cleanupScope.DeclineExpiredUpdates = $true
$cleanupScope.CleanupObsoleteUpdates = $true
$cleanupScope.CompressUpdates = $true
$cleanupScope.CleanupObsoleteComputers = $true
$cleanupScope.CleanupUnneededContentFiles = $true
$cleanupManager = $wsus.GetCleanupManager();
$Result = ($cleanupManager.PerformCleanup($cleanupScope))
Add-Content -Path $logFile -Value "SupersededUpdatesDeclined: $($Result.SupersededUpdatesDeclined)"
Add-Content -Path $logFile -Value "ExpiredUpdatesDeclined: $($Result.ExpiredUpdatesDeclined)"
Add-Content -Path $logFile -Value "ObsoleteUpdatesDeleted: $($Result.ObsoleteUpdatesDeleted)"
Add-Content -Path $logFile -Value "UpdatesCompressed: $($Result.UpdatesCompressed)"
Add-Content -Path $logFile -Value "ObsolotetComputersDeleted: $($Result.ObsoleteComputersDeleted)"
Add-Content -Path $logFile -Value "DiskSpaceFreed: $($Result.DiskSpaceFreed)"
Add-Content -Path $logFile -Value "$(get-date) Cleanup completed"
Add-Content -Path $logFile -Value ""
Comments