Инвентаризация программного обеспечения
Из личной практики. Есть небольшая сеть (около 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/
Dale:
Очень хорошая вещь, вот пришел с отпуска, и нужно поглядеть чем там мои юзверы занимались :)
Ответить
26 августа 2010, 12:37Aliyev:
Dlya etoqo dostup do “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet” xvataet ili doljno bit druqaya sposob?
Ответить
16 мая 2011, 7:20m0rh0ld:
Вещь хорошая, но ссылка мертвая уже. можно перезалить архив или кинуть в почту. Заранее спасибо.
Ответить
27 октября 2014, 8:30