Инвентаризация установленных программ и обновлений средствами WMI и VBScript

дата последнего изменения: 24.08.2010
метки: инвентаризация, VBScript, WMI


Данный скрипт, как и скрипт для инвентаризации компьютеров, можно запускать разными способами — локально (если нет доступа по сети), удаленно (с рабочего места администратора), в «тихом» режиме — через logon-скрипт.

По итогам инвентаризации можно составить общий отчет в формате HTML. Он представляет собой матрицу, строки которой соответствуют программам, а столбцы — компьютерам. Если программа установлена на компьютере, на пересечении соответствующей строки и столбца выводится отметка — символ «+» и зеленый цвет фона. На таком отчете хорошо видно, где какие программы установлены, вот пример:

Фрагмент отчета по инвентаризации программ в виде матрицы

Загрузка и установка

Скрипт для инвентаризации программ и обновлений средствами WMI, формат VBS, упакован ZIP: invent_soft.zip

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

Первый этап работы — сбор данных

Для сбора данных надо запустить скрипт invent_soft.vbs и указать сетевое имя компьютера. Отчет в формате CSV будет сохранен в заданный каталог или на сетевой ресурс. Имя файла отчета соответствует сетевому имени компьютера.

Настройка скрипта

Настройка скрипта производится через определенные в нем константы. По умолчанию скрипт настроен на запуск вручную, при этом отчет записывается в подкаталог soft и выводятся необходимые запросы и сообщения:

Const DATA_DIR = "soft\" 'каталог для сохранения отчетов + "\" в конце
Const SILENT = FALSE 'тихий режим отключен, будет запрошено имя компьютера

При автоматическом запуске, например через logon-скрипт необходимо указать путь к сетевому ресурсу, доступному для записи и отключить вывод диалогов:

Const DATA_DIR = "\\SRV\Invent\soft\" 'сетевой ресурс для сохранения отчетов + "\" в конце
Const SILENT = TRUE 'режим отчета о локальном компьютере, без вывода диалогов

Настройка скрипта для создания общего отчета производится аналогично.

Инвентаризация обновлений

В списке установленных программ может быть достаточно много обновлений («заплаток»). Если инвентаризация проводится, например, с целью подсчета количества лицензий, то обновления при этом учитывать не нужно. Поэтому по умолчанию обновления не включаются в отчет.

Если же нужно выяснить, на каких компьютерах не хватает каких-либо заплаток — нетрудно перенастроить скрипт, чтобы он, напротив, включал в отчет только обновления. Для этого достаточно закомментировать (поставить символ кавычки в начале строки) константы:

'настройки для инвентаризации программ
'Const UPDATES = FALSE 'не учитывать обновления
'Const TITLE = "Инвентаризация установленных программ" 'заголовок диалоговых окон
'Const DATA_DIR = "soft\" 'путь для сохранения отчетов, если пусто - текущий каталог

И раскомментировать расположенные ниже константы, т.е. убрать символ кавычки в начале строк:

'настройки для инвентаризации обновлений
Const UPDATES = TRUE 'учитывать только обновления
Const TITLE = "Инвентаризация установленных обновлений" 'заголовок диалоговых окон
Const DATA_DIR = "updates\" 'путь для сохранения отчетов, если пусто - текущий каталог

Точно так же, скрипт для создания общего отчета настраивается отдельно.

Источник данных

Список программ, получаемый через WMI-запрос SELECT Name, Vendor, Version, InstallDate FROM Win32_Product не полный, поэтому нужные данные берутся из реестра, из ветки HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\. Это те самые данные, по которым строится список установленных программ в «Панели управления» Windows. Для 64-х битных систем надо учитывать еще одну ветку — HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\, где отдельно хрянятся данные по 32-х битным программам.

Формат отчета с результатами

Для хранения данных используется CSV-файл с тремя столбцами:

  1. Название и версия программы
  2. Производитель
  3. Дата установки

Пример отчета:

Название и версия;Производитель;Дата установки
1C Предприятие 7.7;-;-
7-Zip 4.62;-;-
Adobe Flash Player 10 ActiveX;Adobe Systems Incorporated;-
Adobe Flash Player 10 Plugin;Adobe Systems Incorporated;-
AIMP2;AIMP DevTeam;-
Audacity 1.2.6;-;-
avast! Antivirus;Alwil Software;-
BackStreet Browser 3.1;-;-
Borland Database Engine 5.11;-;-
EPSON Scan;-;-
Exact Audio Copy 0.99pb4;Andre Wiethoff;-
Free Download Manager 3.0 Language pack;-;06.02.2009
Windows Internet Explorer 8;Microsoft Corporation;09.04.2009
ImgBurn;LIGHTNING UK!;-
IrfanView (remove only);-;-
High Definition Audio Driver Package - KB888111;Microsoft Corporation;-
K-Lite Codec Pack 4.1.7 (Full);-;18.10.2008
Microsoft .NET Framework 2.0;Microsoft Corporation;-
Mozilla Firefox (3.5);Mozilla;-
...

Второй этап работы — составление общего отчета

Для составления общего отчета достаточно запустить скрипт invent_soft_report.vbs. Скрипт просмотрит заданный в настройках каталог и из всех найденных там отчетов извлечет данные. Отчет будет выведен сразу в двух форматах, CSV и HTML. HTML удобен для быстрого просмотра, а CSV — для импорта в табличный редактор (OpenOffice.org Calc или MS Excel) и последующей обработки.

Для анализа результатов инвентаризации лучше использовать специализированные программы. Например, в OpenOffice.org Calc достаточно сделать следующее:

  1. Импортировать CSV-файл с общим отчетом, в качестве разделителя столбцов выбрать ;;
  2. На месте столбца «B» вставить новый столбец для вывода общего количества установок программ, ввести нужную формулу;
  3. Для удобства просмотра уменьшить ширину столбцов с данными, названия компьютеров повернуть вертикально;
  4. Для наглядности выделить ячейки с установленными программами, через «Условное форматирование» и «Стилиста»;
  5. Установить автофильтр по всем столбцам;
  6. Чтобы названия программ и имена компьютеров не прокручивались — разбить и зафиксировать окно;

Пример оформленного таким образом отчета:

Общий отчет по инвентаризации программ, оформленный в Calc

Что можно увидеть из такого отчета:

  1. Сколько имеется установок (и сколько нужно лицензий) каждой программы — см. столбец «B».
  2. На каких компьютерах установлена какая-либо программа — применить фильтр в столбце «А». Если нужно отобразить все версии одной программы — поможет «Стандартный фильтр», имя поля «Программы», условие «Начинается с», ввести значение.
  3. Какие программы установлены на каком-либо компьютере — применить фильтр в соответствующем столбце, выбрать значение «1». При этом будет видно, на каких еще компьютерах есть те же программы.

История изменений


Есть замечания, предложения или пожелания? Сообщите автору!
↑ К началу страницы | соответствует стандартам XHTML, CSS

Фото автора

Павел Железнов
ИТ-специалист

Метки:

Страницы: