Новый инструмент Office Update Inventory Tool продолжает дело MBSA

Учитывая огромное количество различных «червей», вирусов и других вредоносных программ, нацеленных на Microsoft Office, установка последних исправлений для Office оказывается такой же важной задачей для обеспечения безопасности сети, как и установка последних исправлений системы безопасности для Windows. Предлагаемые Microsoft технологии MSBA (Microsoft Baseline Security Analyzer) в сочетании с WSUS (Windows Server Update Services) позволяют автоматизировать управление исправлениями Windows, но MBSA может только сообщить о недостающих исправлениях в Office.

Средство Microsoft Office Update Inventory Tool 2.1 позволяет выполнить сканирование сети для обнаружения всех компьютеров, на которых отсутствуют Office 2000 Service Release 1a (SR-1a) и более поздние обновления Office. Этот доступный для свободной загрузки инструмент позволяет сформировать отчет об отсутствии исправлений Office для группы компьютеров. Хотя программа-анализатор должна быть запущена на каждом компьютере индивидуально, предлагаемый инструмент (в отличие от MBSA) позволяет автоматически получить консолидированный отчет о наличии или отсутствии исправлений для группы компьютеров.

Office Update Inventory Tool

В состав Office Update Inventory Tool входит два исполняемых файла: inventory.exe и convert.exe. Inventory.exe выполняет сканирование локального компьютера и установленного программного обеспечения и исправлений и анализирует, какие исправления должны быть установлены для каждого из приложений Office. По результатам работы программы составляется отчет, содержащий сведения об установленных файлах и требуемых исправлениях; отчет называется по имени компьютера и сохраняется в указанном при запуске каталоге.

После того как программа инвентаризации отработает на всех компьютерах, а результаты будут сохранены в единую сетевую папку, необходимо выполнить программу convert.exe, которая анализирует все найденные файлы отчетов и создает консолидированный отчет, позволяющий определить статус исправлений Office в масштабах организации.

Давайте посмотрим, каким образом можно обеспечить автоматическое исполнение inventory.exe на всех сетевых компьютерах, так чтобы вручную не выполнять регистрацию в сети и запуск инструмента. Варианты зависят от того, насколько велика сеть и можно ли рассчитывать на поддержку пользователей. Если пользователи готовы помочь, можно просто разослать всем по электронной почте письмо с предложением запустить программу inventory.exe. Но в большинстве случаев этот самый простой способ неприемлем, и придется воспользоваться другими.

Инвентаризация — как это делается

Для автоматизации работы Office Update Inventory Tool можно включить его в сценарий регистрации пользователя в сети или настроить его выполнение через групповую политику. Для настройки сценария запуска или регистрации в сети следует открыть любой из объектов Group Policy Object (GPO) в консоли управления MMC и перейти в раздел Computer ConfigurationWindows SettingsScripts (Startup/Shutdown) или User ConfigurationWindows SettingsScripts (Logon/Logoff). Кроме того, можно назначить задание. Все три варианта имеют свои преимущества. Я предпочитаю использовать сценарий запуска компьютера, поскольку данный сценарий выполняется с правами local system, так что не возникает проблемы с нехваткой прав для запуска программы. Недостаток этого подхода заключается в том, что сценарий срабатывает только после перезапуска компьютера, а многие серверы и рабочие станции перезагружаются довольно редко.

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

Я предпочитаю использовать механизм назначения заданий, поскольку этот подход позволяет управлять временем выполнения задачи и указывать учетную запись, обладающую необходимыми правами для установки программного обеспечения. Утилита Schtasks позволяет из командной строки планировать запуск задания на удаленном компьютере. К сожалению, утилита Schtasks недоступна для Windows 2000, так что, если в сети имеются компьютеры Windows 2000, на них придется воспользоваться командой At.

Шаг 1. Установка Office Update Inventory Tool

В первую очередь необходимо загрузить Office Update Inventory Tool и установить его на компьютерах сети. Потребуется сделать следующее:

  1. Создать на общем сетевом ресурсе папку для хранения программы инвентаризации, например mtg1oinventory.
  2. Указать в браузере страницу http://www.microsoft.com/office/ orkarchive/2003ddl.htm и загрузить два самораспаковывающихся исполняемых файла invcm.exe и invcif.exe, которые составляют средство инвентаризации.
  3. Запустить invcim.exe. В ответ на запрос, в какой каталог распаковать файлы, следует указать имя общего каталога (mtg1oinventory). В результате исполнения в общей папке окажутся исполняемые модули инструмента инвентаризации (convert.exe, inventory.exe и oudetect.dll).
  4. Запустить invcif.exe и также указать каталог распаковки mtg1oinventory, в котором будет создан подкаталог cifs, содержащий файлы базы данных описаний всех доступных исправлений Office. Каждый раз, когда Microsoft выпускает новое исправление для Office, выпускается и обновленная версия invcif.exe. Следует иметь в виду, что база данных не содержит исправления Office, а только идентификационную информацию, которая позволяет утилите инвентаризации определять, были ли установлены на анализаруемый компьютер исправления.
  5. Создать подпапку invout в общей папке mtg1oinventory. Этот каталог будет использоваться программой инвентаризации для сохранения ее журналов на локальных компьютерах пользователей.

Шаг 2. Сканирование домена

Для сканирования отдельного компьютера домена достаточно просто выполнить локальную регистрацию на компьютере и в диалоговом окне Run ввести команду

mtg1oinventoryinventory.exe
  /s mtg1oinventorycifs
  /o mtg1oinventoryinvout

(как и другие команды, приведенные в данной статье, она должна быть записана в одну строку).

Чтобы создать в планировщике задание на сканирование компьютера, можно воспользоваться командой Schtasks. Например, для назначения на 3 апреля 2005 г. инвентаризации на компьютере wkstn11 от имени учетной записи Batchwork с паролем ksdkui# следует выполнить команду

schtasks /create
  /tn "Office Update Scan"
  /tr"mtg1oinventoryinventory.exe
  /s mtg1oinventorycifs  /o
 mtg1oinventoryinvout"
  /sc once /st 00:00:00
  /sd 04/03/2005 /s wkstn11
  /u batchwork /p "ksdkui#"

Schtasks позволяет создавать задание планировщика только на одном компьютере за один запуск. Чтобы назначить задания для всех компьютеров домена, нужно выполнить следующие действия:

  1. В первую очередь - составить список всех компьютеров домена. Сценарий GetListOfComputers.vbs, представленный в листинге 1, выдает имена всех компьютеров домена.
  2. Выполнить команду
    cscript GetListOfComputers.vbs
     //nologo > computers.txt
    Результатом выполнения сценария будет файл computers.txt, содержащий имена всех компьютеров домена.
  3. Теперь можно воспользоваться командой For, чтобы запустить утилиту Schtasks для каждого компьютера из списка. Следующая команда:
for /f  %x in (computers.txt) do
schtasks /create
/tn "Office inventory"
/tr "mtg1oinventoryinventory.exe
/s mtg1oinventorycifs  /o
 mtg1oinventoryinvout"
/sc once /st 00:00:00
/sd 08/03/2005 /s %x /u
 batchwork /p "ksdkui#"

вызывает Schtasks однократно (/sc once) в полночь (/st 00:00:00) третьего августа 2005 года (/sd 08/03/2005) для каждого компьютера из списка computers.txt. Ключ /s %x определяет имя компьютера, на котором Schtasks назначает задачу планировщика. Команда будет выполнена от имени учетной записи bathwork (/u batchwork) с паролем ksdkui# (/p «ksdkui#»).

Для Windows 2000 придется использовать команду At, как уже упоминалось выше:

for /f  %x in (computers.txt)
do at \%x 00:00
/next:8/3/2005
"mtg1oinventoryinventory.exe
/s mtg1oinventorycifs
  /o mtg1oinventoryinvout"

Шаг 3. Составление сводного отчета

Программа Convert.exe запускается вручную, чтобы из отдельных файлов журнала выполнения утилиты инвентаризации на пользовательских компьютерах сформировать консолидированный отчет в виде одного файла .xml, который можно проанализировать в Microsoft Excel. Приведенная ниже команда

mtg1oinventoryconvert
  /d mtg1oinventoryinvout
  /o mtg1oinventory
esults.xml
  /xml mtg1oinventorypatchdata.xml

создает файл results.xml, содержащий консолидированный отчет о выполнении инвентаризации Office на всех компьютерах домена.

Шаг 4. Какие исправления должны быть установлены

После завершения работы Convert.exe откройте results.xml в Excel. Для каждого компьютера Covert.exe перечисляет все обновления Office, которые должны быть установлены, но пока отсутствуют. Кроме того, в списке содержатся установленные и устаревшие, т. е. потерявшие свою актуальность исправления.

В настоящее время нас интересуют только актульные исправления, которые еще не установлены на компьютеры клиентов. Следует щелкнуть мышью на заголовке столбца EXPIRED6 и выбрать значение False. Таким образом, список будет мгновенно сокращен до перечисления только тех компьютеров, которые должны быть установлены на каждую машину.

Необходимо оставить видимыми столбцы NAME, NAME 3, PATCHID4, URL5, EXPIRED6 и BASELINEREQUIRED, остальные столбцы скрыть. Теперь, как показано на экране 1, у нас имеется пригодный для анализа список исправлений Office, которые требуется установить на компьютеры сети. Столбец NAME содержит имена компьютеров, требующих установки исправлений, а столбцы NAME3 и PATCHID4 — описательное и сокращенное наименования отсутствующего на компьютере исправления. Столбец BASELINEREQUIRED содержит спискок исправлений, которые должны быть установлены до загрузки данного исправления. Этот столбец носит информационный характер, поскольку WSUS автоматически устанавливает все необходимые исправления в правильном порядке. Если в сети не используется WSUS, можно задействовать утилиту OhotFix, как описано во врезке «Нет WSUS — запускаем OHotFix». Столбец PATCHID4 содержит список всех исправлений, которые должны быть установлены в сети.

Экран. Просмотр недостающих исправлений

Полезные советы

Использование Schtasks — хороший способ создать повторяющееся задание, которое будет регулярно запускать программу инвентаризации. Самое простое — запускать инвентаризацию ежедневно при старте компьютера. Регулярный запуск инвентаризации позволит получить актуальный консолидированный отчет в любой момент, когда понадобится проанализировать состояние исправлений Office в корпоративной сети.

Заметим, что при добавлении новых компьютеров в сеть на них тоже потребуется назначить повторяющееся задание по инвентаризации, в противном случае в сети начнут накапливаться компьютеры, которые не получают исправлений Office. Если повторяющееся задание исполняется некорректно, то диагностировать проблему поможет анализ журнала исполнения назначенных заданий (файл %systemroot%SchedLgU.txt). Как правило, проблемы бывают связаны с вводом неправильного имени пользователя или пароля либо учетная запись не обладает правами локальной регистрации в качестве пакетного задания (Log on as batch jub, SeBatchLogonRight) или не имеет достаточных полномочий (для установки исправлений необходимо обладать правами Power User или Administrator).

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

mtg1oinventoryinventory
  /update mtg1oinventory

Ключ /update указывает, что inventory.exe должна загрузить последнюю версию файла invcif.exe.

Исправления — это серьезно

Трудно найти пользовательский компьютер, на котором не было бы установлено множество дополнительных программ — WinZip, Adobe Acrobat и т. п. Эти программы также нуждаются в периодическом обновлении и установке исправлений. Большинство поставщиков программного обеспечения предлагают исправления своих продуктов в формате .msi, что позволяет настроить их автоматическое исполнение через функцию установки программ Group Policy Software Installation. Но если обновление программы в формате .msi недоступно, то для установки исправлений необходимо использовать специализированные решения для управления рабочими местами — Microsoft Systems Management Server или специализированные программы распространения исправлений, предлагаемые независимыми разработчиками, такими как St. Bernard Software и Shavlik Technologies.

Программа Office Update Inventory Tool позволяет решить проблемы с Microsoft Office на компьютерах сети, надо только потратить немного времени на разработку несложных сценариев. Анализ отчетов, выдаваемых программой инвентаризации до и после исправления, позволит убедиться, что назначенные задания успешно осуществляют обновление Office, и заодно продемонстрировать руководству результаты работы по устранению уязвимых мест.


Рэнди Франклин Смит - Редактор Windows IT Pro и ведущий инструктор и разработчик курсов для программы по безопасности Windows NT/2000 института MIS Training. Его компания, Monterey Technology Group, занимается консалтингом в области информационной безопасности. Связаться с ним можно по адресу: rsmith@monterey techgroup.com


Нет WSUS — запускаем OHotFix

Бывают ситуации, когда невозможно воспользоваться Windows Server Update Services (WSUS) для установки исправлений на сетевые компьютеры (например, у сервера может оказаться недостаточно ресурсов). Тогда для организации автоматического обновления Office можно задействовать предлагаемую Microsoft бесплатную программу OHotFix, которую можно запускать независимо от Office Update Inventory Tool. Для этого следует создать общий сетевой каталог, поместить туда OHotFix и там же сохранить все файлы исправлений для используемых в сети версий приложений Office. При запуске OHotFix на локальном компьютере программа будет выполнять сканирование этого компьютера и устанавливать на него все исправления, которые могут быть установлены. Для настройки OHotFix требуется выполнить следующие шаги:

  1. Создать общий сетевой каталог (пусть это будет, например, mtg1ohotfix). Важно убедиться, что группа Domain Computers обладает разрешениями на чтение и исполнение (Read и Execute) в данном каталоге.
  2. Загрузить с сайта Microsoft по адресу http://www.microsoft.com/office/ orkarchive/XPddl.htm программу установки, offinst.exe
  3. Запустить offinst.exe, и, когда программа запросит каталог для распаковки файлов, указать mtg1ohotfix. В этот каталог будут распакованы три файла (ohotfix.exe, ohotfixr.dll, и ohotfix.ini).
  4. Загрузить исправления для используемых в сети версий Office, которые распространяются в виде файлов .exe. Эти библиотеки исправлений для версий Office 2003, Office XP и Office 2000 могут быть загружены с сайта Office Admin Update Center (http://office.microsoft.com/en-us/FX011511561033.aspx). Чтобы загруженное исправление можно было устанавливать с помощью OHotFix, выполните запуск файла исправлений с ключами /c /t:целевой_каталог. Если запустить программу обновления без параметров, то программа установки будет считать, что следует обновить только локальный компьютер. Например, для загрузки выпущенного 8 марта 2005 г. исправления Outlook 2003 Junk Email Filter (office2003-kb892236-fullfile-enu.exe) нужно выполнить следующую команду:
    office2003-kb892236-fullfile-enu.exe
     /c /t:mtg1ohotfix
    
    Эта команда извлекает указанное обновление Junk Email Filter (outlfltr.msp) в каталог mtg1ohotfix.
  5. После того как будет выполнена распаковка всех файлов .msp для всех исправлений Office, которые планируется установить, следует запустить программу OHotFix на целевых (локальных пользовательских) компьютерах. Можно воспользоваться программой Schtasks, чтобы назначить выполнение OHotFix на группе компьютеров, как было описано в основной статье.

Если число компьютеров в сети относительно невелико (в пределах нескольких сотен), можно не опасаться, что одновременное обращение к папке OHotFix со всех компьютеров вызовет сбой — сервер Windows благодаря средствам кэширования вполне способен справиться с такой нагрузкой. Только следует иметь в виду, что некоторые компьютеры могут при этом не получить исправления (например, они могут оказаться выключены в момент назначения задания или в то время, когда назначенное задание должно быть выполнено). Так что не забывайте использовать Office Update Inventory Tool для анализа списка компьютеров, которые нуждаются в обновлении Office.