Автоматизация управления патчами в Windows, часть 2

Автоматизация управления патчами в Windows, часть 2

В предыдущей части этой статьи, я рассказал о SUS, его назначении, немного о настройке сервера и методах установки клиентской части Automated Updates. В этой части вы узнаете, что происходит на клиентском компьютере, когда SUS активен, как контролировать активность клиентов по загрузке и установке патчей, и как исправить или обойти некоторые общие проблемы. Я также представлю два метода «для бедных» для анализа SUS лог-файлов.

Jonathan Hassell, перевод Михаил Разумов

В предыдущей части этой статьи, я рассказал о SUS, его назначении, немного о настройке сервера и методах установки клиентской части Automated Updates. В этой части вы узнаете, что происходит на клиентском компьютере, когда SUS активен, как контролировать активность клиентов по загрузке и установке патчей, и как исправить или обойти некоторые общие проблемы. Я также представлю два метода «для бедных» для анализа SUS лог-файлов.

Использование SUS: на клиентской стороне

Чтобы сконфигурировать Windows для работы с SUS, сначала включите Automatic Updates. Для этого в Windows XP откройте Control Panel, в ней апплет System, и нажмите на закладку Automatic Updates. В Windows 2000, откройте Control Panel, а в ней апплет Automatic Updates.

Вы увидите окно свойств Automatic Updates. Вы, как администратор, выбираете, как обновления загружаются, сообщают пользователям и затем устанавливаются на клиентские машины. Работающий пользователь, имеющий административные права, уведомляется маленькой иконкой в системном трее, а также информационным «пузырьком», выскакивающим, когда загрузка обновлений завершена. Администратор также может определить, что обновления были загружены, просмотрев system log.

Загрузка и установка обновлений

Обновления загружаются в фоновом режиме сервисом BITS, или Background Intelligent Transfer Service, являющимся частью Windows. BITS обнаруживает отсутствие сетевой активности и использует это для загрузки большого количества данных с удаленных сайтов. BITS обнаружит, когда пользователь инициирует сетевую активность и приостановит процесс загрузки, ожидая следующего пассивного периода для ее продолжения.

Процесс установки обновлений запускается в зависимости от вышеупомянутых опций, которые были описаны в предыдущей части статьи. Когда обновления закончили загружаться, в системном трее компьютера появляется уведомляющая иконка, и пользователь с административными правами может нажать на нее для получения диалогового окна Ready to Install (готово к установке).

Вы можете нажать кнопку Remind Me Later (напомнить позже), чтобы отложить установку обновлений на заданное время, в диапазоне от 30 минут до 3 дней от текущего времени. Если вы сконфигурировали Automatic Updates устанавливать обновления по расписанию, они будут загружены в фоне и автоматически установятся по этому расписанию. Automatic Updates устанавливает обновление и перезагружает компьютер, если обновление требует этого, даже если в системе в данный момент не работает администратор. Если работает администратор, он сможет отменить этот процесс; если обычный пользователь, он получит уведомление о предстоящей процедуре и обратный отсчет до ее запуска.

Однако если обновления уже загрузились, а время установки еще не пришло, иконка уведомления возникнет в системном трее, аналогично тому, как было описано выше. У пользователя не будет возможности выбрать Remind Me Later, но он может запустить установку обновлений, не ожидая определенного по расписанию времени.

Общие проблемы и обходные пути

Использование настроек политики, которые контролируют установку неподписанного ПО, может оказаться помехой в работе клиента Automatic Updates. В частности, если у вас настроено "Warn but allow installation" («Предупреждать, но разрешать установку») по отношению к неподписанному коду, вы столкнетесь с проблемами на некоторых обновлениях. Microsoft иногда выпускает неподписанные обновления, и поскольку Windows настроен спрашивать разрешения, процедура останавливается, ожидая разрешения на установку обновления. Естественно, этот запрос никогда не появится, поскольку установка происходит в автоматическом режиме, без отображения, таким образом AU просто остановится. Если вы столкнетесь с такой проблемой, вам нужно закрыть запущенные процессы обновления, используя утилиты типа Process Explorer от Sysinternals. Встроенный в Windows Task Manager не позволит вам сделать это.

Также, некоторые машины сталкиваются с «зацикливанием» на некоторых патчах, что может быть, а может и не быть виной SUS, но не ограничено одним SUS. Если компьютер постоянно хочет установить один и тот же патч, используя как SUS, так и при ручном посещении сайта Windows Update, решить проблему обычно помогает очистка кеша Internet Explorer.

Если ваш сервер SUS не синхронизируется корректно, убедитесь, что сам сервер не находится за чрезмерно запрещающим файрволом. Для синхронизации, SUS требуется возможность связи по 80 порту, кроме того он должен иметь доступ к следующим (не просматриваемым) URL:

· http://www.msus.windowsupdate.com

· http://download.windowsupdate.com

· http://cdm.microsoft.com

У вас также может быть проблема, особенно на канале с низкой шириной полосы пропускания, когда последние сервис паки забивают ваш канал Интернет, вызывая тем самым неудачу в процессе синхронизации. Чтобы отключить закачку сервис паков, скачайте их в свободное время и затем вручную скопируйте в папку 'SUS content\cabs' на сервере. В конце, переименуйте эти файлы в w2ksp4_en_7f12d2da3d7c5b6a62ec4fde9a4b1e6.exe и XPSP1A_8441053935ADBFC760B966E5E413D3415A753213.exe соответственно. Теперь вы можете продолжить использовать SUS, не опасаясь за неудачу синхронизации в процессе загрузки сервис паков.

Если вы пытаетесь разрешить проблемы с SUS на клиентской стороне, с которыми вы можете столкнуться, может оказаться полезным очистка относящихся к SUS ключей реестра:

· HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\DetectionStartTime

· HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\LastWaitTimeout

Также вы можете восстановить работу сервиса Automatic Updates из командной строки, остановив его командой net stop wuauserv, а затем запустив net start wuauserv. Эти шаги обычно решают проблемы с SUS на клиентской стороне; чтобы проверить, что все стало нормально, подождите минут 15-30, а затем проверьте активность в файле %SystemRoot%\Windows Update.log.

ЗАМЕЧАНИЕ: Вам следует оставить систему в покое после очистки ключей реестра и перезапуска сервиса AU, иначе BITS не обнаружит отсутствия сетевой активности, чтобы синхронизировать обновления с сервером SUS.

Если кажется, что клиент Automatic Updates зависает и просматривает список обновлений, но никогда не загружает их, вы можете проверить статус всех загрузок, используя административную утилиту сервиса BITS, которая находится в директории Support на компакт-диске Windows XP. Установите ее, и после нажатия 'Start Download' в клиентском интерфейсе AU, когда последний сообщает о доступных для установки обновлениях, запустите командную строку и наберите bitsadmin /list /allusers /verbose. Это может показать информацию о попытках загрузки, и почему они не проходят. Важно также убедиться, что разрешен анонимный доступ к корню IIS сервера SUS, и что папка SUS (и, в частности, SUS\Content\Cabs) позволяет доступ Everyone. BITS пытается загрузить файлы из этой папки Cabs, и возникнут проблемы, если он не сможет получить их.

Мониторинг системы на стороне клиента

Software Update Services и клиент Automatic Updates предоставляют несколько шаблонов событий, которые записываются в системный журнал событий для описания текущего статуса процесса обновления, любых возникших ошибок, и краткого описания того, какие обновления были удачно установлены. Вы можете запрограммировать инструмент мониторинга журнала событий на определенные ID событий, которые специфичны для SUS, чтобы иметь представление о состоянии здоровья вашей сети, когда приходит время обновлений. В следующей таблице перечислены эти события, их значение и описание.

Таблица 1: Сообщения журнала событий SUS/AU клиента

ID события

Значение

Описание

16

Unable to connect (Невозможно соединиться)

Клиент не может соединиться либо с сайтом Windows Update, либо с сервером SUS, но будет продолжать попытки.

17

Install ready; no recurring schedule (К установке готов; не задано расписание)

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

18

Install ready; recurring schedule (К установке готов; запланировано по расписанию)

Обновления загружены и готовы к установке. Дата запланированной установки отображается вместе с описанием события

19

Install success (Установка прошла успешно)

Обновления были успешно установлены; они перечислены.

20

Install failure (Ошибка при установке)

Некоторые обновления не были корректно установлены; они перечислены

21

Restart required; no recurring schedule (Требуется перезагрузка; не задано расписание)

Обновления были установлены, но требуется перезагрузка, и пока компьютер не будет перезагружен, Windows не сможет устанавливать другие обновления. Любой пользователь может перезагрузить машину.

22

Restart required; recurring schedule (Требуется перезагрузка; запланировано по расписанию)

Обновления были установлены, но требуется перезагрузка, которая запланирована через 5 минут.

Логи

Сервер SUS записывает данные в лог синхронизации каждый раз, кода сервер пытается соединиться со своим источником обновлений. Этот лог доступен с административного веб-сайта SUS с помощью любого стандартного веб браузера; его также можно получить напрямую с машины SUS в директории autoupdate\administration веб-сайта. Имя файла - history-Sync.xml. Запись лога содержит время последней синхронизации, была ли она удачной, дата и время следующей запланированной синхронизации, содержание операции и были ли все компоненты удачно установлены, а также была синхронизация запланированной или ручной. Сервер SUS также хранит логи утвержденных обновлений, который может быть найден там же, где и лог синхронизации с именем history-approve.xml.

По существу, все клиентские машины отправляют стандартный HTTP GET запрос сервера SUS к файлу wutrack.bin, включающий ряд параметров, которые описывают состояние статуса клиента. Например, запись в стандартном логе может выглядеть:

2004-02-09 09:09:41 192.168.0.121 - 80 GET /wutrack.bin V=1&U=63a9dfd44a7aca47ade26684ed5fe66a&C=iu&A=n&I=&D=&P=5.1.1677.2.0.1.0&L=en-US&S=s&E=00000000&M=&X=031101050105756 200 Whistler+Update+Control+Pack

Вы видите отдельные параметры, хотя некоторые из них закодированы, чтобы скрыть их значение. Один из недостатков использования SUS состоит в нехватке возможностей анализа логов. SUS записывает лог в стандартном IIS лог формате, но не существует утилиты от Microsoft, чтобы напрямую импортировать эти логи и сделать их более полезными для администратора. Несколько доморощенных скриптов были созданы для решения этой задачи, включая один от системного программиста Кена Хувера (Ken Hoover) из Yale University. Он написал несколько perl-скриптов, которые анализируют логи, извлекая из них полезную информацию.

Скрипты Кена Хувера анализируют эту информацию и создают различные отчеты о содержащихся там данных, включая количество машин, которые соединялись с сервером SUS, разделение их по версиям операционных систем, поиск в списке систем, который вы создали, тех, которые отсутствуют в лог-файлах (полезно, если вы пытаетесь определить, соединяется ли вообще система с сервером SUS), список машин, которые еще не установили определенный патч, или детальное описание всей активности над определенным патчем или машины с определенным IP адресом.

Скрипты Хувера работают в любой имплементации Perl, включая ActiveState Perl для Windows, и не зависят от клиентов – они работают исключительно с лог-файлами на сервере. Скрипты можно найти на веб-сайте Хувера.

Если вам нужен несколько более детальный отчет, Вэйн Флинн (Wayne Flynn) создал утилиту SUSReporting, доступную по адресу http://www.susserver.com/. Утилита анализирует лог-файлы IIS, импортирует их в базу Microsoft SQL Server, и создает на основе веб-интерфейса отчет активности с помощью нескольких ASP скриптов. Отчет по умолчанию содержит активность в течение 72 последних часов, хотя данные навсегда остаются в базе данных и вы можете легко добавить параметр в скрипт (?days=x) для доступа к данным за большее количество дней, чем по умолчанию. Недостатком является то, что в данном методе вам необходимо иметь SQL Server для работы встроенных скриптов.

В следующей части

В этих двух частях я подробно обсудил SUS, включая его функционирование, достоинства и ограничения, и как обойти некоторые проблемы, с которыми вы можете столкнуться в процессе работы. В последней части, я представлю несколько бесплатных и коммерческих инструментов, кратко опишу их функциональность и ограничения, и дам рекомендации мест, где можно искать дальнейшую информацию.

Ваша приватность умирает красиво, но мы можем спасти её.

Присоединяйтесь к нам!