Инвентаризация ПО и железа

23 Май
2012

На работе встал вопрос о быстрой инвентаризации ПО и комплектующих в ОС Windows, и так как что-то более менее похожее (что-бы 2 в 1) и бесплатное не нашел, решил то что имеется соединить при помощи скриптов.
Нашел первую программу для инвентаризации ПО инвентаризации ПО и отдельно для железа.


Так же на для вывода информации о лицензии Windwos был использован VBS скрипт:
файл winlic.vbs
Rem lookup digital product id from registry
Set WshShell = WScript.CreateObject("WScript.Shell")
HexBuf = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId")
For l = lBound(HexBuf) to uBound(HexBuf)
tmp=tmp & " "& Hex (HexBuf(l))
next
'WshShell.Popup "Found Digital Product Id in registry: " & _
'" " & _
'" " & _
'" " & tmp
StartOffset = 52
EndOffset =67
Dim Digits (24)
Digits (0) = "B" : Digits (1) = "C": Digits (2) = "D": Digits (3) = "F":
Digits (4) = "G": Digits (5) = "H": Digits (6) = "J": Digits (7) = "K":
Digits (8) = "M": Digits (9) = "P": Digits (10) = "Q": Digits (11) = "R":
Digits (12) = "T": Digits (13) = "V": Digits (14) = "W": Digits (15) = "X":
Digits (16) = "Y": Digits (17) = "2": Digits (18) = "3": Digits (19) = "4":
Digits (20) = "6" : Digits (21) = "7" : Digits (22) = "8": Digits (23) = "9"
dLen = 29
sLen = 15
Dim HexDigitalPID (15)
Dim Des (30)
For i = StartOffset to EndOffset
HexDigitalPID (i-StartOffset) = HexBuf(i)
tmp2=tmp2 & " "& Hex (HexDigitalPID(i-StartOffset))
next
'WshShell.Popup "Found Digital Product Id in registry: " & _
'" " & _
'" " & _
'" " & tmp & _
'" " & _
'" " & _
'" " & _
'" " & _
'"Found the sequence in the digital product ID. Can you spot it in the row above? " & _
'" " & tmp2
KEYSTRING =""
for i=dLen-1 to 0 step -1
if ((i + 1) mod 6) = 0 then
Des (i) = "-"
KEYSTRING =KEYSTRING & "-"
else
HN = 0
For N = (sLen -1) to 0 step -1
Value = ( (HN *2^8 ) Or HexDigitalPID (N))
HexDigitalPID (N) = Value \ 24
HN = (Value mod 24)
next
Des(i) = Digits(HN)
KEYSTRING =KEYSTRING & Digits(HN)
end if
next
KEYSTRING2 = StrReverse (KEYSTRING)
'WScript.Echo "Your XP Key is: " & KEYSTRING2
'WScript.Echo "Thank you!"
Set WshNetwork = WScript.CreateObject("WScript.Network")
set wsh1 = WScript.CreateObject("WScript.Shell")
On Error Resume Next
User = wsh1.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOwner")
OS = wsh1.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Installations\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.0.0_x-ww_1382d70a\Codebases\OS\\Prompt")
License = wsh1.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductID")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set file = FSO.CreateTextFile("Free.txt",False)
set file = FSO.OpenTextFile("Free.txt",8)
file.WriteLine("")
file.WriteLine(WshNetwork.ComputerName) + " - " + (User)
file.WriteLine(OS)
file.WriteLine(License)
file.WriteLine(KEYSTRING2)
file.Close
,
строчка «Set file = FSO.CreateTextFile(»Free.txt»,False)» создает файл Free.txt с именем компьютера и регистрационным ключом

В отчет в конце будет добавляться информация ответственного лица из файла
end.txt
Подпись руководителя, ответственного или кого-там Вы пожелаете


После того как мы скачали выше указанные программы, создали скрипт и файл окончания отчета мы получаем примерно такую структуру:
программа \\ папка как мы в будущем её назовем
HW \\ папка с программой сбора данных о железе
invent_soft \\ папка с программой сбора данных о ПО
winlic.wbs \\ скрипт для имени и ключа компьютера
end.txt \\ концовка файла отчета

Следующим этапом было создание батника, который это все будет запускать:
start.bat
title €­ўҐ­в аЁ§ жЁп ЏЋ Ё Є®¬Ї«ҐЄвгойЁе
echo Џ®¦ «г©бв , Ї®¤®¦¤ЁвҐ...
rem заходим в папку проги для ПО и запускаем скрипт для сбора инфы о ПО
rem программа создает отчет по пути c:\invent_soft\soft\ названный по имени компа
c:
cd invent_soft
invent_soft.vbs

cd c:\
rem запуск скрипта для получение регистрационного ключа Windows и имени компа
rem добавление полученных данных в файл отчета
winlic.vbs && type c:\Free.txt >> c:\invent_soft\soft\%COMPUTERNAME%.csv
rem подчищаем за собой
del /f /q winlic.vbs
del /f /q Free.txt

rem заходим в папку проги по железу и запускаем скрипт для сбора инфы о железе
cd c:\hw
"PC Wizard.exe" /R T1 C1 c:\invent_soft\soft\%COMPUTERNAME%.txt
rem пауза, в связи тем, что не нашел как компьютер ждать выполнения окончания сканирование
rem перед тем как выполнить след. команду
rem на нек-рых компах думаю надо ставить больше, т.к. может не успеть
ping 127.0.0.1 -n 3 > nul

rem данные о железе добавляем в файл с данными о ПО
type c:\invent_soft\soft\%COMPUTERNAME%.txt >> c:\invent_soft\soft\%COMPUTERNAME%.csv
cd c:\

rem добавляем концовку файла и сразу его сносим
type c:\end.txt >> c:\invent_soft\soft\%COMPUTERNAME%.csv
del /f /q c:\end.txt

rem Удаляем все следы программы, оставляем только полученные данные и этот файл 1.bat
del /f /q c:\invent_soft\*.*
rmdir /s /q c:\hw
rmdir /s /q c:\invent_soft\updates
move c:\invent_soft\soft\%COMPUTERNAME%.csv c:\invent_soft
rmdir /s /q c:\invent_soft\soft
rem del /q /f c:\hw\*
rem move c:\%COMPUTERNAME%.csv c:\ivent_soft\
del /f /q c:\start.bat


вся эта полученная структура была запакована в SFX-архив, у которого в параметрах было указана распаковка на диск C, и после этого запуск батника.

На момент создания этого всего не было Active Directory, и была инструкция для полдьзователей как запускать этот архив.
Теперь думаю это перенести на обычный logon пользователя.
По материалам Хабрахабр.



загрузка...

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

Наверх