Очистка wsus от ненужных обновлений

Очистка wsus от ненужных обновлений

Хранилище WSUS состоит из двух частей:

  • базы данных MS SQL (обычно на Windows Internal Database) с информацией о всех ПК, пречнем обновлений и их файлов, результатами установки и т.п.
  • папки со всеми файлами обновлений.

Со временем это хранилище «обрастает ракушками», то есть в нём накапливаются обновления, которые никому не нужны. Причин этому несколько. Значительную долю в замусоривание вносит автоматическое одобрение обновлений. Вещь очень хорошая, так как вручную фильтровать лишние и одобрять нужные обновления крайне трудоёмко и представляет собой типичный «мартышкин труд». Однако автомат обязательно наодобряет чего-нибудь лишнего. Наиболее распространённые лишние обновления – это обновления для платформы Itanium, которая в подавляющем большинстве компаний не используется. WSUS не позволяет разделять обновления по платформам. Поэтому настроив автоматическое одобрение, скажем, обновлений безопасности, вы одобрите обновления и для x86-32, и для x86-64 и для IA64. Их файлы WSUS в полном объёме скачает с вышестоящего сервера и сложит в хранилище. Соответственно, обновления для Itanium нужно отклонять вручную.

К замусориванию WSUS так же приводит устаревание обновлений. Устаревание, в свою очередь, тоже бывает двух видов. Во-первых, у обновления в прямом смысле есть срок действия, назначенный Микрософт, который со временем заканчивается. Во-вторых, старые обновления могут заменяться более новыми обновлениями. У каждого обновления на WSUS есть свойство, указывающее статус его замены. Возможные варианты – текущее обновление заменяет другое обновление, другое обновление заменило текущее, или текущее обновление вообще никак не связано с другими обновлениями.

Казалось бы, заменённые обновления надо удалять. Но тут кроется хитрость – не всегда Микрософт заменяет обновления на равнозначные. В статье про обновления и их свойства сказано, что аналогичное обновление для более нового продукта так же считается заменой старого обновления. К примеру, есть уязвимость в IE 7. Для её устранения выпустили обновление. Потом такую же уязвимость нашли в IE 8. Для него тоже выпустили обновление, которое будет считаться заменой обновления и для IE 7. Но это – обновления для разных продуктов. Нельзя одно поставить вместо другого. Положим, вы отклоните старое обновление. Если у вас остался ПК с IE 7, на который обновление не успело установиться, то ПК так и останется с уязвимостью. Поэтому Микрософт рекомендует следующую практику отклонения заменённых обновлений:

  1. Одобрить более новое обновление.
  2. Убедиться, что все ПК установили либо старое, либо более новое обновление. Не должно остаться ПК, которому старое обновление всё ещё требуется.
  3. Отклонить старое обновление.
  4. Не устанавливать старые продукты на новые ПК, чтобы не возникло ситуации, когда опять потребуется старое обновление.
Читайте также:  Как выключить ноутбук sony vaio

Отклонение обновления не означает удаление его файлов. Отклонение – это просто пометка в базе WSUS о том, что обновление не нужно. Для удаления файлов нужно использовать мастер очистки WSUS. Он позволяет:

  • удалить старые обновление, которые так и не были приняты,
  • удалить ПК, которые давно не соединялись с WSUS,
  • удалить файлы, которые не нужны обновлениям,
  • отклонить устаревшие обновления,
  • отклонить заменённые обновления, которые находились на сервере более 30 дней, не требуются ни одному клиенту, уже 19 дней как никуда не устанавливались и заменяющее их обновление одобрено.

Опции можно выбирать. К примеру, можно удалять только старые обновления, а старые ПК не трогать и т.п.

Обратите внимание, что вышеописанную задачу с отклонение обновления для Itanium мастер не решает. Есть и ещё один нюанс. В компании может быть парк тестовых ПК, состояние обновлений которых не критично. На таких ПК может быть, к примеру, специально развёрнута устаревшая ОС. Регулярное появление таких ПК приведёт к тому, что WSUS не будет отклонять устаревшие обновления, так как они всё ещё нужны клиентам. Поэтому нами разработан скрипт очистки WSUS, который:

  1. Отклоняет обновления с Itanium или IA-64 в названии.
  2. Отклоняет заменённые обновления позволяя задать группы оборудования, на состояние которых не нужно обращать внимания.
  3. Запускает мастер очистки для окончательного удаления лишних обновлений.

Скрипт я выложу чуть позже. Первый его запуск на нашем WSUS освободил 46 Гб (сорок шесть гигабайт) места на диске. На WSUS клиентов результаты, кончено, на порядок скромнее – максимум, единицы гигабайт, а чаще несколько мегабайт. Просто у клиентов обновлений меньше, соответственно, и мусора на серверах меньше.

Windows Server Update Services (WSUS) — серверное ПО которое отвечает за обновления для ОС и ПО от Microsoft в локальной сети. WSUS скачивает с сайта Microsoft обновления для заранее указанных ОС и продуктов от Microsoft. Это экономит трафик, нет необходимости каждому компьютеру качать через интернет одни и те же обновления. Также при помощи WSUS можно централизованно управлять обновлениями, контролировать процесс и наблюдать статистику. Рано или поздно все скачанные обновления для множества разных версий ОС и ПО начинают занимать достаточно много дискового пространства. В таких случаях можно столкнутся с двумя проблемами:

  • Не хватает дискового пространства
  • Бекапы становятся слишком большими, особенно если нет возможности исключить из резервных копий ту или иную папку (как в Windows 2008, имеется в виду не Windows 2008 R2)
Читайте также:  Почему не объединяются ячейки в ворде

В таких случаях может понадобится переместить обновления WSUS на другой диск или попытаться ее уменьшить.

Перенос базы WSUS на другой диск

Оказывается это достаточно простая задача:

  • Создаем папку WSUS там, куда вы хотите перенести файлы обновлений. Например я создал папку на диске F: — F:Wsus
  • Запускаем командную строку под правами администратора
  • Переходим в папку с утилитой wsusutil командой:
  • Запускаем команду, которая начнет перенос файлов обновлений:

Если Вы не хотите чтобы перемещались сами файлы обновлений (не хотите ждать пока они скопируются) тогда добавляем -skipcopy:

Где "F:WSUSwsus.log" — расположение лог-файла процесса переноса. Когда перенос закончится удаляем по старому адресу папки WSUS (кроме UpdateServicesDbFiles). У меня файлы обновлений WSUS хранились по адресу D:WSUS. В этой папке есть три подпапки:

  • UpdateServicesDbFilesэту папку НЕ удаляем, она не переносится вышеописанной командой. В ней хранятся файлы баз данных которые содержат информацию о компьютерах, обновлениях, их статусах и настройках WSUS-сервера. Как раз то, что нужно включать в резервную копию
  • WsusContent — удаляем, она переносится. Именно эта папка самая большая, в ней хранятся все скачанные обновления вашим WSUS-сервером. Эту папку не обязательно включать в бекап. В случае утери папки нужно выполнить команду "wsusutil.exe reset", это запустит процес проверки соответствия обновлений в базе данных обновлениям на жестком диске. В случае, если обновления повреждены, WSUS скачивает их повторно.
  • UpdateServicesPackages — тоже удаляем. В ней хранятся опубликованные Вами пакеты, если вы ничего не публиковали она будет пустая.

Очистка базы данных WSUS

Почистить базу данных WSUS можно двумя способами:

  • Server Cleanup Wizard
  • Powershell скриптом

Отмена замененных обновлений

Первым делом рекомендую отменить все утвержденные для установки обновления, которые были заменены более новыми обновлениями. Таким образом Вы освободите больше всего места.

Если во Wsus просматривать такие обновления, то в информации о нем будете видеть сообщение:

This update is superseded by another update we recommend that you verify it is no longer needed by any other computer To do so first approve the superseding Update

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

Хорошей практикой считается такой порядок действий при отмене замещенного обновления:

  • разрешить более новое (замещающее) обновление
  • убедиться, что все системы его установили (где требуется)
  • убедиться, что все системы сообщают о замещаемом обновлении, как неприменимом
  • теперь можно безопасно удалить замещенное обновление
Читайте также:  Яндекс диск не работает скриншот

Для того, чтобы отфильтровать обновления по замещению:

  • нужно перейти в WSUS во "Обновления" — "Все обновления"
  • в выпадающем списке "утверждение" выбрать "утверждено"
  • в выпадающем списке "состояние" выбрать "любой"
  • кликнуть правой кнопкой мышки по заголовку таблицы и поставить галочку напротив "замена" (supersedence). Также рекомендую сразу же добавить столбец "Число необходимых установок", чтобы видеть что это обновление нужно на 0 компьютерах и значит можно его отменять.
  • далее сортируйте по столбцу "замена" и отменяйте не нужные замененные обновления
  • после всех этих действий нужно очистить wsus одним из двух способов описанных ниже.

Чистка базы WSUS через Server Cleanup Wizard

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

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

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

Расшифруем значение параметров:

  • DeclineSupersededUpdates — отклонить обновления, которые заменены более новыми версиями или же включены в пакеты обновлений. Также, отклоняются обновления, которые не были подтверждены в течение 30 и более дней, и не востребованы ни одним клиентом.
  • DeclineExpiredUpdates — отклонить просроченные обновления. Как правило, Microsoft выпускает новые обновления взамен просроченным, а просроченные — удаляет со своих потоковых серверов загрузки.
  • CleanupObsoleteUpdates — удаляем неиспользуемые и устаревшие обновления, включая все их ревизии. Удаляются те обновления и ревизии, которые не были подтверждены в течение 30 и более дней.
  • CompressUpdates — удаляем устаревшие ревизии обновлений.
  • CleanupObsoleteComputers — удаляет устаревшие компьютеры, которые не контактировали с сервером 30 и более дней.
  • CleanupUnneededContentFiles — удаляем ненужные файлы обновлений. Включение этой опции позволяет освободить максимальный объем места на диске.

Очистка WSUS

  1. Запустить Cleanup Wizard из оснастки консоли управления WSUS
  2. Использовать wsusutil reset
  3. Воспользоваться wsusdebugtool /tool:PurgeUnneededFiles

Первое очищаем все что можно, второе сбрасываем состояние, удаляем ненужные файлы (отклоненные, отсутствующие в базе). После очистки wsusdebugtool размер папки содержащей обновления уменьшился практически на 50%.

Ссылка на основную публикацию
Отчет времени от даты
Дата от: Год Месяц День Час Минута Дата до: Год Месяц День Час Минута Между датами прошло: Лет Месяц Дней...
Оао мобильные телесистемы зачем звонят
Давайте разберемся, что за организация Вымпел-Коммуникации. Что такое они собой представляют и зачем звонят из этой организации? Наверняка вы слышали...
Обратный элемент по модулю python
Этот алгоритм использует соотношения для НОД: НОД(2*a, 2*b) = 2*НОД(a,b) НОД(2*a, b) = НОД(a,b) при нечетном b, Он иллюстрируется следующей...
Очистка wsus от ненужных обновлений
Хранилище WSUS состоит из двух частей: базы данных MS SQL (обычно на Windows Internal Database) с информацией о всех ПК,...
Adblock detector