Скрипт очистки WSUS от ненужных обновлений
Для осуществления автоматической очистки базы обновлений WSUS нам понадобится следующий PowerShell скрипт, который вы можете найти также на сайте-первоисточнике:
Давайте более детально рассмотрим имеющиеся опции скрипта, а также варианты его запуска по расписанию.
1) DeclineSupersededUpdates
Опция позволяет отклонять те обновления, которые в последующем были заменены более новыми версиями или же включены в пакеты обновлений (заменяемые обновления). Так, например, hotfix KB2403218 включен в накопительное обновление 6 для SQL Server 2008 R2 и будет отклонен при включенной опции Decline Superseded Updates. Кроме того, отклоняются обновления, которые не были подтверждены в течение 30 и более дней, а так же не востребованы ни одним клиентом.
2) DeclineExpiredUpdates
Позволяет отклонить просроченные обновления. Как правило, Microsoft выпускает новые обновления взамен просроченным, а просроченные - удаляет со своих потоковых серверов загрузки.
3) CleanupObsoleteUpdates
Удаляет из базы неиспользуемые и устаревшие обновления, включая все их ревизии. Удаляются те обновления и ревизии, которые не были подтверждены в течение 30 и более дней.
4) CompressUpdates
Удаляет из базы устаревшие ревизии обновлений.
5) CleanupObsoleteComputers
Удаляет из базы устаревшие компьютеры, которые не контактировали с сервером 30 и более дней.
6) CleanupUnneededContentFiles
Удаляет ненужные файлы обновлений. Включение этой опции позволяет освободить максимальный объем места на диске.
Итак, мы разобрались со всеми возможными опциями, используемыми для очистки базы службы WSUS через PowerShell скрипт. Осталось понять, в каком порядке лучше их указывать? Сперва, нам надо очистить список всех устаревших компьютеров, затем отклонить все заменяемые и просроченные обновления, и только лишь потом удалить их из базы. Таким образом, желательный порядок указания опций будет следующим:
Я предлагаю использовать вам скрипт, в котором мы соблюдаем правильную последовательность указания опций и не используем две из них (CleanupObsoleteComputers и DeclineSupersededUpdates):
Последнее, что нам осталось сделать, это автоматизировать процесс выполнения имеющегося powershell скрипта. Для этого предлагаю создать cmd файл, который надо скопировать в ту же папку, что и сам скрипт. Содержимое cmd файла:
Здесь замените пути к файлам скрипта и лога, текст которых выделен красным цветом.
Всё! Теперь можно запускать этот cmd файл через Планировщик заданий по нужному вам графику.
Комментарии
Уточните пожалуйста, вы запускаете скрипт на самом WSUS сервере?
При выполнении скрипта выдает ошибку.
Исключение при вызове "GetUpdateServe r" с "0" аргументами: "Выдано исключение типа "Microsoft.UpdateServices.Administra
tion.WsusInvalidServerException"."
строка:1 знак:78
В вашем случае имеет место или медленный сервер, или большой размер базы обновлений (или всё перечисленное вместе). Вот тут люди пишут, как можно решить проблему. Как вариант, попробуйте несколько раз запустить скрипт - он выдаст ошибку, запускайте опять и опять. Быть может на 10-ый раз он всё же отработает полностью.
Эта же ошибка что делать ? Тоже самое и при использовании визарда.
завершения операции или сервер не отвечает.
Change:Successfully deployed deployment(Decl ine) of Definition Update 1.159.2215.0 for MSEv2 (BDD 1.159.1951.0 X86) by
CISSTADA\sc6680_adm UpdateID:B69B6C 6A-0C36-40E1-B9 1F-671022896E04 Revision Number:202 "
C:\1\WSUS_Cleanup.ps1:17 знак:1
+ $cleanupManager.PerformCleanup($cleanupScope);
+ ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocatio nException
+ FullyQualifiedE rrorId : SqlException
Не могу скачать скрипт по указанной ссылке. Описание скрипта там есть, а кнопки Download так и не нашел...
Можете скинуть мне скрипт на почту или выложить куда-нибудь?
Заранее благодарен.
RSS лента комментариев этой записи