Я пытаюсь найти установленную версию программного обеспечения на многих серверах (более 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 и он не подключен. По выводу я не могу сказать, на каких серверах установлено программное обеспечение, а на каких нет или сервер вообще подключен.

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

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

Расмус

1 ответ1

0

Вы хотите обернуть это в пакетную команду.

Псевдокод:

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

Затем запустите thisFile.bat >> logfile.txt, и вы получите небольшой список вроде

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .