Sep 13, 2009

Удаление обновлений


Обновления программного обеспечения один из краеугольных камней компьютерной безопасности. Очень важно правильно подходить к процессу управления обновлениями. К сожалению, иногда установка того или иного обновления может приводить к ошибкам в работе системы или в работе сторонних программ. Если это произошло, необходимо удалить обновление вызывающее ошибку. При удалении обновлений очень важно соблюдать правильную последовательность. При откате обновления, обновленные файлы заменяются на архивные копии. Таким образом, мы можем нарушить работоспособность системы, если проведем удаление обновлений в неправильном порядке. Пример:
Update1 (KB 100001) – обновляет файл targed.dll с версии 5.25 до версии 5.77. Файл targed.dll (5.25) будет сохранен в %systemdrive%\Windows\$NTUninstallKB100001$\
Update2 (KB100002) – обновляет файл targed.dll (5.77) до targed.dll (6.0), оригинальный файл сохраняется в архиве. Также это обновление обновляет файл bad.dll с версии 0.1 до версии .02
Update3 (KB100003) – обновляет файл targed.dll с версии 6.0 до версии 6.5.
Допустим, мы выяснили, что обновленный файл bad.dll (0.2) вызывает ошибки в работе бизнес-приложения. При этом bad.dll (0.1) таких ошибок не вызывал. Мы принимаем решение об откате обновления Update2, чтобы восстановить нормальную работу. Но при этом удаление обновления update2 вызовет замену рабочего файла targed.dll (6.5) на архивную версию targed.dll (5.77). Соответственно мы потеряем изменения сделанные обновлением Update3. Естественно такая ситуация может вызвать трудно диагностируемые сбои в работе системы.
Подробнее в статье «Removing Windows software updates in the wrong order may cause the operating system to stop functioning»
Поэтому в данной ситуации правильным будет следующий сценарий:
· удаление обновления Update3;
· удаление обновления Update2;
· установка обновления Update3.
Для того чтобы узнать какие файлы исправляет обновление, или какие версии обновлений оно заменяет, обратитесь к описанию обновления на сайте Microsoft
Например: http://www.microsoft.com/technet/security/Bulletin/MS08-065.mspx
System Center Configuration Manager не может самостоятельно удалять обновления. Для удаления обновлений вы можете воспользоваться одним из вариантов:
1)ручное удаление обновление с каждого компьютера, через оснастку «Установка и удаление программ» — имеет смысл, если проблемных компьютеров один-два;
clip_image002
Рисунок 1 Установка и удаление программ — действия на обновлениями
2)удаление обновления через WSUS. Для этого в консоли администрирования WSUS найдите необходимое обновление и одобрите его для удаления
clip_image004
Рисунок 2 Одобрение для удаления обновления во WSUS
3)Использование программы установки обновлений. Для удаления обновления запустите %systemdrive%\Windows\$NTUninstallKBnumber$\spuninst\spuninst.exe
Подробнее: http://support.microsoft.com/default.aspx/kb/832475/ru
Если у вас проблемное обновление установлено на несколько компьютеров, то проблем с его поиском и удалением быть не должно. Как быть если обновление установлено на несколько десятков или даже сотен компьютеров? Использовать SCCM для удаления обновления.
Для начала давайте определимся со списком компьютеров, на которых установлено это обновление. Список компьютеров с установленным обновлением вы можете получить через отчет: Software Updates — A. Compliance — Compliance 9 — Computers in a specific compliance state for an update
Отчет это очень красиво, но он не поможет нам удалить обновления. Для удаления обновления создадим коллекцию UninstallUpdate. На странице правил членства в коллекции выбираем «Query rule». Задаем имя правила и нажимаем кнопку «Edit Query Statement».
clip_image005
Рисунок 3 Создание запроса членства компьютеров
В появившемся окне выбираем «Attribute class – Add\Remove programs» и «Attribute – Display Name»
clip_image006
Рисунок 4 Указание, что выборка производится из установленных программ
Теперь нажимаем кнопку «Value».
clip_image007
Рисунок 5 Задание удаляемой программы
Нам выводиться список всех программ установленных на всех компьютерах сайта. Прокручиваем список и находим записи об установленных обновлениях. Выбираем обновление которое вызывает ошибки.
clip_image008
Рисунок 6 Список установленных программ в сайте
Несколько нажатий кнопок OK и мы получаем сформированный критерий членства в коллекции.
clip_image009
Рисунок 7 Критерий членства в коллекции
Хочу заметить, что вы можете создавать несколько критериев одновременно. Равно как и искать обновления с помощью подстановочных знаков. Например, запись вида %KB95% сформирует вам коллекцию из машин, на которых установлено любое из обновлений, номер статьи которого начинается с 95.
clip_image010
Рисунок 8 Итоговое окно
После создания коллекции – распространяем на нее через Software Distribution скрипт, который удалит наши обновления. В данном случае скриптом будет обычный bat-файл, в который будет последовательно удалять обновления с помощью spuninst.exe.
Помните, что правильную последовательность удаления обновлений вы должны задать самостоятельно!

Алексей Тараненко
MCP/MCTS: SCCM 2007
altaranenco@gmail.com
Скачать статью в PDF

No comments:

Post a Comment