Сценарий для заполнения компьютерного описания для Windows XP и win7

Мы используем SCOM, но это - вероятно, больше, чем Вам нужно, хотя это - окончательное (мы используем его для контроля больше чем 100 000 серверов). Nagios является популярным битом контролирующего программного обеспечения, которое является открытым исходным кодом.

2
задан 24 November 2010 в 01:46
2 ответа

При принятии того, что вы смотрели на изменение компьютерное описание на самой локальной машине, а не в Active Directory - Вы могли сделать следующее с Powershell (примечание: Вам будет нужен powershell на Ваших клиентах XP).

$computer=get-wmiobject win32_computersystem
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" -name "srvcomment" -value $computer.model

Я искал более изящные методы для обновления компьютерного описания, но ни один из них на самом деле не работал. Обновление ключа реестра, казалось, было самым легким методом.

Принятие powershell не работает, можно хотеть изучить язык сценариев под названием AutoIT. AutoIt может скомпилировать все в сам содержавший исполняемый файл и устранить клиентские зависимости.

1
ответ дан 3 December 2019 в 12:15

Стоя на плечах превосходного ответа CurtM, у меня есть подход non-powershell. Назовите этот сценарий из сценария входа в систему:

setmodel.cmd

@for /f " skip=1 tokens=1 delims=^|" %%a in ('wmic.exe path win32_computersystem get model' ) do set model=%%a 

@reg add HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment /t reg_sz /d "%model%" /f

С незначительными модификациями можно обработать список машин в домене:

setmodel_r.cmd

@for /f " skip=1 tokens=1 delims=^|" %%i in ('wmic.exe /node:%1 path win32_computersystem get model' ) do set model=%%i

@reg add \\%1\HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment /t reg_sz /d "%model%" /f

Получите список машин в домене с помощью dsquery.exe. Передайте вывод по каналу к setmodel_r.cmd, и у Вас должен быть свой образцовый набор как описание. От командной строки дайте команду:

for /f %b in ('dsquery * domainroot -filter "(objectCategory=computer)" -attr name') do call setmodel_r.cmd %b

Но, можно хотеть протестировать setmodel_r.cmd прежде, чем выполнить его против всего домена -

for /f %b in (testcomputers.txt) do call setmodel_r.cmd %b

где testcomputers.txt содержит несколько названий машины, каждого на новой строке.

Необходимо играть с ними, пока Вы не становитесь довольными тем, что они делают.

Ограбить

1
ответ дан 3 December 2019 в 12:15

Теги

Похожие вопросы