Ausführen des Befehls auf einem Remote-Windows-Server und Hinzufügen von Ergebnissen zu einer Textdatei

707
RazziaDK

Ich versuche, die installierte Version einer Software auf vielen Servern (800+) zu finden.

Der Befehl lautet: "dsmqver -f 2", was eine Ausgabe wie "Version: 7.5.0.2" zurückgibt.

Ich habe versucht, den Prozess mit PsExec von sysinternals zu automatisieren, aber ich bekomme nicht die gewünschte Ausgabe.

Derzeit sieht mein Befehl so aus:

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

Es läuft durch die aufgeführten Server in der Datei servers.txt und führt den Befehl aus - dieser Teil funktioniert, aber die Ausgabe wird auf sinnlose Weise sortiert.

Ein Beispiel für die Ausgabe ist:

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

Das Problem ist, dass auf server2 kein MQ installiert ist und es offline ist. An der Ausgabe kann ich nicht feststellen, auf welchen Servern die Software installiert ist und welcher nicht oder ob der Server überhaupt online ist.

Gibt es ein klügeres Was?

Freundliche Grüße

Rasmus

0

1 Antwort auf die Frage

0
Linef4ult

Sie möchten dies in einen Stapelbefehl einschließen.

Pseudo-Code:

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

Dann führe thisFile.bat >> logfile.txt aus und du solltest eine nette kleine Liste erhalten

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