В настройках WSUS-сервера есть опция очистки, которая позволяет удалить из базы записи о просроченных или отклоненных обновлениях, замещенных обновлениях, устаревших записях компьютеров. Кроме того, при этом удаляются ненужные файлы обновлений, которые могут занимать существенное место на диске. Каждый раз заходить и запускать процедуру очистки не совсем удобно, поэтому этот процесс необходимо автоматизировать. Используем для этого PowerShell.
На сервере с установленной ролью WSUS имеется специальный командлет для этой цели – Invoke-Wsus Server Cleanup. Он делает то же самое, что и запуск процедуры очистки из консоли управления WSUS.
Минимальный скрипт выглядит так:
Get-WSUSServer | Invoke-WsusServerCleanup -CleanupObsoleteComputers -CleanupObsoleteUpdates -CleanupUnneededContentFiles -CompressUpdates -DeclineExpiredUpdates -DeclineSupersededUpdates
Можно сохранить его в файл, например, wsuscleanup.ps1 и настроить запуск по расписанию, например, раз в неделю.
Если же мы хотим видеть результат выполнения скрипта в журнале событий 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
В итоге результат выполнения выводится в журнал событий:
Источники:
- Оригинал статьи взят из блога It’s my life — rasul.pro