Главная System Center, Новое Удаление обновлений
  • Удаление обновлений

    editdelete Обновления программного обеспечения один из краеугольных камней компьютерной безопасности. Очень важно правильно подходить к процессу управления обновлениями. К сожалению, иногда установка того или иного обновления может приводить к ошибкам в работе системы или в работе сторонних программ. Если это произошло, необходимо удалить обновление вызывающее ошибку. При удалении обновлений очень важно соблюдать правильную последовательность. При откате обновления, обновленные файлы заменяются на архивные копии. Таким образом, мы можем нарушить работоспособность системы, если проведем удаление обновлений в неправильном порядке.

    Пример:

    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

    • Рубрика: System Center,Новое
    • Автор: Алексей Тараненко
    • Дата: Sunday 26 Apr 2009

Комментарии

  1. а еще лучше разворачивать новые обновления в тестовой среде, НО следует помнить, что вредителям знаком метод обратного инжиниринга обновлений! т.е. если до выхода обновления POC код не был доступен – то после, он может быть!

  2. Разумеется, обновлеия необходимо тестировать, всегда.
    Этому кстати отдельная статья посвящена.

    Просто иногда возникают сучаи, когда протестированное обновление, по каким либо причинам необходимо удалить. Именно этому и посвящена эта статья.

  3. К сожалению у админов не всегда есть время тестить да и негде