![]() |
Сбор информации на удаленных ПК
Добрый день!
Народ помогите написать скрипт, который сможет удаленно собирать информацию о версии windows 7 (к примеру "Windows 7 x32 Enterprise (Single User) V6.01 Build 7601 Service Pack 1") на удаленных ПК. Список ПК будет в .txt файле. И есть ли такая возможно запуска службы удаленный реестр на этих же ПК? |
Данный о версии системы находятся в:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion "CSDVersion" = Service Pack 1 "CurrentBuild" = 7601 "ProductName" = Windows 7 Enterprise |
Написал вот такой скрипт на сбор информации о версии W7, но если служба удаленный реестр потушена, то все плохо...
Кто подскажет как можно удаленно запустить службу удаленный реестр или откуда (возможно из файла?) можно достать информации о версии w7? TrayTip ("Status", "Выберите файл", 5, 1) Opt ( "TrayAutoPause", 0) $open = FileOpenDialog("Выберите файл", @DesktopDir & "\AUTOIT", "Текстовый документ (*.txt)", 1) If @error = 1 Then Exit $file = FileOpen ($open, 0) FileDelete ("check_version_os.txt") While 1 $line = FileReadLine($file) If @error = -1 Then ExitLoop $P = Ping ( $line, 10) ; Провека доступности узла посредсвом ICMP запросов If $P = 0 Then $a = "Недоступен" FileWrite ("check_office_log.txt", $line&@TAB&"="&@TAB&$a&@CRLF) EndIf If $P > 0 Then $ProductName = RegRead("\\"&$line&"\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName") $CurrentBuild = RegRead("\\"&$line&"\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CurrentBuild") $CSDVersion = RegRead("\\"&$line&"\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CSDVersion") FileWrite ("check_version_os.txt", $line&@TAB&"="&@TAB&$ProductName&@TAB&"="&@TAB&$CurrentBuild&@TAB&"="&@TAB&$CSDVersion&@CRLF) EndIf Wend TrayTip ("Status", "Завершено", 3, 1) FileClose($file) FileClose($open) |
Народ, помогите написать 2 функции...
Обе работают с програмой: "sc" 1. Первая состоит из 3-х переменных: _function_1 ($pc_name, $service_name, $tipe) 1.1. Сперва проверяет тип запуска службы и если тип запуска = "$tipe" ( вот так: "sc \\$pc_name config $service_name start= $tipe" ), то выход. 1.2. Если тип запуска службы не равен "$tipe", то она выставляет меняет её значение на "$tipe" и выходит. 2. Вторая состоит из 3-х переменных: _function_2 ($pc_name, $service_name, $action) 2.1. Cверяет совпадает статус службы с $action (запуск, стоп) , если да то выход. 2.2. Если нет, то функция запускает, останавливает ($action равен или stop или start) нужную службу ($service_name) на заданном ПК ($pc_name). Запуск службы на удаленном пк происходит через команду sc \\pc start RemoteRegistry |
HFShak, не проще ли и надёжней использовать технологию Wbem (она же в простонародье WMI) для сбора потребных сведений с удалённых машин?
|
Спасибо. А можно какой-нибудь пример скрипта сбора информации с удаленной машины?
|
HFShak, в принципе, практически любой WSH скрипт, использующий Wbem, может быть с лёгкостью переписан на AutoIt. Здесь я приводить примеры не буду, ибо Вы можете легко найти их непосредственно в Русском сообществе AutoIt: WMI site:http://autoit-script.ru - Поиск в Google (тамошний родной поиск работает только после регистрации).
|
Спасибо, нашел похожие темы на удаленный запуск служб.
Есть один момент, который надо исправить, я не знаю, как это сделать... Как сделать так, чтобы скрипт проверял тип запуска службы на удаленном ПК и если она соответствует $sServiceName, то он переходил в следующему по списку ПК? И если вдруг нету доступа к удаленно машине, он не прерывал скрипт а так же переходил в следующему оп списку ПК и делал запись об этом событии в log.txt... Вот сам код: Код:
$open = FileOpenDialog("Выберите файл", @DesktopDir & "\AUTOIT", "Текстовый документ (*.txt)", 1) |
Время: 07:24. |
Время: 07:24.
© OSzone.net 2001-