Инвентаризация программного обеспечения

Из личной практики. Есть небольшая сеть (около 40 компьютеров), компьютеры с установленной WIndows XP SP3 в домене Windows 2003. Необходимо провести инвентаризацию установленного программного обеспечения, чтобы убедиться, что ничего лишнего (нелицензионного) не установлено. Причем интересует именно инсталлированное ПО, которое отображается в оснастке Установка и удаление программ. Специального программного обеспечения для таких целей у меня нет, а поэтому пользуюсь средствами операционной системы. На основе статьи с сайта osp.ru написал пару скриптов которые проверяют компьютеры в сети и сохраняют список установленных программ в текстовый файл.

Вот хочу поделится скриптами, может быть пригодятся кому-то. Ничего сложного - простейшие команды, простейшие скрипты. Можно сделать проще, можно сложнее, можно один скрипт - это уже будете сами экспериментировать, если будет необходимость и желание. Я же коротко опишу, то что есть.

Есть каталог в котором находятся четыре скрипта:

obrabotka-po-compname.cmd
obrabotka-po-listcompname.cmd
verify-po-compname.cmd
verify-po-listcompname.cmd

Один текстовый файл:
compnames.txt

и подкаталог output.

В текстовом файле находятся ДНС-имена компьютеров, одно имя в одной строке. Примерно так:

1
2
3
4
5
compname1
compname2
compname3
...
compnameN

Этот текстовый файл будет использоваться как входной параметр для скриптов obrabotka-po-listcompname.cmd и verify-po-listcompname.cmd. Скрипты нужно запускать из под учетной записи которая имеет право доступа к реестру удаленного компьютера. Также нужно иметь ввиду, что эти скрипты будут работать если на удаленных компьютерах работает служба Удаленный реестр. В командной строке Windows нужно перейти в каталог где лежат скрипты и выполнить по очереди два скрипта:

1
2
> verify-po-listcompname.cmd compnames.txt
> obrabotka-po-listcompname.cmd compnames.txt

Первый скрипт по очереди заходит в реестр удаленных компьютеров имена которых содержаться в файле compnames.txt извлекает необходимую информацию и сохраняет ее в подкаталоге output в текстовом файле. Для каждого компьютера создается отдельный текстовый файл. Имя файла складывается из имени компьютера и расширения .txt. То есть будут файлы вида compname1.txt, compname2.txt и т.д. Второй скрипт убирает некоторую лишнюю информацию и оставляет только имена установленных программ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
7-Zip 4.52 beta
Adobe Flash Player 10 Plugin
AIMP2
avast! Antivirus
HijackThis 2.0.2
ImgBurn
K-Lite Mega Codec Pack 4.4.2
Logitech QuickCam Driver Package
Mozilla Firefox (3.5.7)
Notepad++
Sandboxie 3.42
Sun VirtualBox Guest Additions 3.1.2
Windows XP Service Pack 3
DeepBurner v1.9.0.228
Logitech QuickCam
Opera 10.10

Если нужно проверить только один какой-то компьютер, то тогда используем скрипты verify-po-compname.cmd и obrabotka-po-compname.cmd. Им в качестве параметра нужно передавать имя компьютера:

1
2
> verify-po-compname.cmd compname1
> obrabotka-po-compname.cmd compname1

Результат также будет сохранен в каталоге output.

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

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

Архив со скриптами можно скачать здесь. Если нужно пояснить текст скриптов - пишите, обязательно добавлю пояснения.

Вот, кстати, нашел таки ссылку на статью http://www.osp.ru/win2000/2007/03/4244873/

Статьи и новости схожей тематики:

Комментариев: 3

  1. Dale:

    Очень хорошая вещь, вот пришел с отпуска, и нужно поглядеть чем там мои юзверы занимались :)

    Ответить

  2. Aliyev:

    Dlya etoqo dostup do “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet” xvataet ili doljno bit druqaya sposob?

    Ответить

  3. m0rh0ld:

    Вещь хорошая, но ссылка мертвая уже. можно перезалить архив или кинуть в почту. Заранее спасибо.

    Ответить

Оставьте свой отзыв