Главная

Wednesday, 27 June 2018

Профилактика сервера WSUS.

Привет.

Сервер WSUS нуждается в профилактике. Удаление устаревших, замещенных или отмененных обновлений, переиндексация базы, прочее. Начнем с замещенных(устаревших) обновлений. Хорошей практикой считается следующий порядок действий при отмене замещенного обновления:
  1. разрешить более новое (замещающее) обновление
  2. убедиться, что все системы его установили (где требуется)
  3. убедиться, что все системы сообщают о замещаемом обновлении, как неприменимом
  4. теперь можно безопасно удалить замещенное обновление.

Для того, чтобы отфильтровать обновления по замещению:
нужно перейти в WSUS во "Обновления" - "Все обновления", в выпадающем списке "утверждение" выбрать "утверждено", в выпадающем списке "состояние" выбрать "любой", кликнуть правой кнопкой мышки по заголовку таблицы и поставить галочку напротив "замена" (supersedence). 

Также рекомендую сразу же добавить столбец "Число необходимых установок", чтобы видеть что это обновление нужно на 0 компьютерах и значит можно его отменять. Далее сортируйте по столбцу "замена" и отменяйте не нужные замененные обновления после всех этих действий нужно очистить wsus одним из двух способов описанных ниже.

После этого неплохо бы почистить базу сервера WSUS.

Чистка базы WSUS через штатную опцию Server Cleanup Wizard.

Запускаем оснастку "Windows Server Update Services"
Переходим в "Имя WSUS Сервера" - "Computers" - "Options" - "Server Cleanup Wizard"
Выставляем галочки возле тех вариантов очистки которые подходят и жмем "Next"
Ждем ххх или больше часов, все зависит от размера вашей базы обновлений. Ставьте этот процесс на выходной.

Чистка базы WSUS через Powershell скрипт от Microsoft.

Плюс скрипта в том, что можно настроить его периодический запуск, то есть автоматизировать очистку базы данных. 

[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
$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();
$cleanupManager.PerformCleanup($cleanupScope) | Out-File d:\WsusCleanupMS.log

Значения параметров:
DeclineSupersededUpdates - отклонить обновления, которые заменены более новыми версиями или же включены в пакеты обновлений. Также, отклоняются обновления, которые не были подтверждены в течение 30 и более дней, и не востребованы ни одним клиентом.

DeclineExpiredUpdates - отклонить просроченные обновления. Как правило, Microsoft выпускает новые обновления взамен просроченным, а просроченные - удаляет со своих потоковых серверов загрузки.

CleanupObsoleteUpdates - удаляем неиспользуемые и устаревшие обновления, включая все их ревизии. Удаляются те обновления и ревизии, которые не были подтверждены в течение 30 и более дней.

CompressUpdates - удаляем устаревшие ревизии обновлений.

CleanupObsoleteComputers - удаляет устаревшие компьютеры, которые не контактировали с сервером 30 и более дней.

CleanupUnneededContentFiles - удаляем ненужные файлы обновлений. Включение этой опции позволяет освободить максимальный объем места на диске.


Мой результат такой:
SupersededUpdatesDeclined : 13
ExpiredUpdatesDeclined    : 0
ObsoleteUpdatesDeleted    : 883
UpdatesCompressed         : 18452
ObsoleteComputersDeleted  : 0
DiskSpaceFreed            : 1568343160

Еще пару полезных заметок в тему сервера WSUS.

Проверка состояния сервера:
Wsusutil.exe  CheckHealth

Устаревшие методы проверки состояния сервера WSUS, но которые еще попадаются в сети:
WsusDebugTool.exe /Tool:PurgeUnneededFiles (32bit only)
Wsusutil.exe  DeleteUnneededRevisions

А теперь для клиента. Wuauclt - консольная программа для управления процессом обновлений WSUS имеет ключи:

/DetectNow — поиск обновлений
runas /user:admin «wuauclt /detectnow» — поиск обновлений под определенным пользователем
/ReportNow — сформировать отчет

/ShowSettingsDialog — вызывает окно настроек автоматического обновления.
/DemoUI — вызывает значок Security Center в трее.
/v — verbose mode
/vv — very verbose mode
/clearlogfile — очистить логи обновления.
/clearandsaveogfile — сохранить лог обновления в файл и очистить лог.
/downloadnow — скачать обновления сейчас по протоколу BITS
/downloanowfast — скачать обновления сейчас по HTTP.
/stopdownload — остановить скачивание обновлений (HTTP или BITS).
/TestWSUSServer — проверить подключение к серверу обновления
/configlist — показать конфигурацию агента.
/RunHandlerComServer
/RunStoreAsComServer
/ShowSettingsDialog
/ResetAuthorization — запрос на обновление авторизации
/ResetEulas
/ShowWU
/ShowWindowsUpdate
/CloseWindowsUpdate
/SelfUpdateManaged
/SelfUpdateUnmanaged
/UpdateNow
/DemoUI

net stop wuauserv - остановить службу обновления
net start wuauserv - запустить службу обновления.

Помните, в процессе получения обновлений инициатором является клиент, не сервер WSUS.

Удачи.

No comments:

Post a Comment

А что вы думаете по этому поводу?