В настройках WSUS-сервера есть опция очистки, которая позволяет удалить из базы записи о просроченных или отклоненных обновлениях, замещенных обновлениях, устаревших записях компьютеров. Кроме того, при этом удаляются ненужные файлы обновлений, которые могут занимать существенное место на диске. Каждый раз заходить и запускать процедуру очистки не совсем удобно, поэтому этот процесс необходимо автоматизировать. Используем для этого PowerShell.
На сервере с установленной ролью WSUS имеется специальный командлет для этой цели.
Get-WSUSServer | Invoke-WsusServerCleanup -CleanupObsoleteComputers -CleanupObsoleteUpdates -CleanupUnneededContentFiles -CompressUpdates -DeclineExpiredUpdates -DeclineSupersededUpdates
Можно сохранить его в файл и настроить запуск по расписанию.
Если же мы хотим видеть результат выполнения скрипта в журнале событий Windows, его придется немного доработать. Сначала необходимо создать журнал для этого источника (делается один раз и пользователем с правами администратора):
New-EventLog -LogName Application -Source "WSUSCleanup"
Скрипт:
$WSUSServer = Get-WsusServer
$result = Invoke-WsusServerCleanup -UpdateServer $WSUSServer -CleanupObsoleteComputers -CleanupObsoleteUpdates -CleanupUnneededContentFiles -CompressUpdates -DeclineExpiredUpdates -DeclineSupersededUpdates
$message = Out-String -InputObject $result
Write-EventLog -Logname Application -EventID 0 -Source "WSUSCleanup" -Entrytype Information -Message $message
Результат выполнения выводится в журнал событий.