Выполнение команды на удаленном сервере Windows и добавление результатов в текстовый файл

578
RazziaDK

Я пытаюсь найти установленную версию программного обеспечения на многих серверах (более 800).

Команда выглядит так: «dsmqver -f 2», которая возвращает вывод типа «Версия: 7.5.0.2»

Я пытался автоматизировать процесс с помощью PsExec от sysinternals, но я не совсем получил желаемый результат.

В настоящее время моя команда выглядит так:

PsExec.exe @servers.txt -u myDomain\myUsername -p myPassword dspmqver -f 2 >>results.txt 

Он проходит через перечисленные серверы в файле servers.txt и запускает команду - эта часть работает, но вывод сортируется бесполезным образом.

Пример выхода:

Version: 7.5.0.2 Version: 7.5.0.4 \\server1: \\server2: \\server3: 

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

Есть ли умнее, что делать такие вещи, как это?

С наилучшими пожеланиями

Расмус

0

1 ответ на вопрос

0
Linef4ult

You want to wrap this in a batch command.

Pseudo code:

For server in serverlist{ status = PsExec.exe - args echo %server% status is %status% } 

Then run thisFile.bat >> logfile.txt and you should get a nice little list like

Server 1 is Version: 7.5.0.2 Server 2 is Version: 7.5.0.2 Server 3 is Server 4 is Version: 7.5.0.2 and so on 

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