Batchdatei zum Abrufen von Systeminformationen einer Remote-Serverliste mit eindeutigen Anmeldeinformationen

Batchdatei zum Abrufen von Systeminformationen einer Remote-Serverliste mit eindeutigen Anmeldeinformationen

Ich kenne mich mit Skripting nicht aus. Ich habe eine Aufgabe vor mir, bei der ich die Serververfügbarkeit überprüfen muss, um sicherzustellen, dass sie tatsächlich wie vorgesehen neu gestartet wurden.

Ich habe die Google-Suche durchgesehen und die Idee einer input.txtDatei gefunden, die alle Servernamen enthält und output.txtdas Ergebnis enthält.

Das Problem besteht darin, dass jeder Server einen eindeutigen allgemeinen Login hat. Der Login-Name lautet beispielsweise domain\server1, das Passwort lautet server1domain. Meine Eingabedatei sieht folgendermaßen aus:

domain\server1, server1domain
domain\server2, server2domain
domain\sevrer3, server3domain

Ich möchte verwenden serverinfo /s | find "uptime" >>c:\output.txtund output.txtmöchte sein:

domain\server1      uptime   <uptime of server>
domain\server2      uptime   <uptime of server>
domain\server3      uptime   <uptime of server>

und so weiter bis zum Dateiende input.txt.

Könnte jemand eine sehr einfache Batchdatei erstellen?

Antwort1

Ich habe einige Änderungen vorgenommen und hoffe, dass sie helfen. Was ich derzeit habe, ist eine Batchdatei, die ich versucht habe, entsprechend meiner Umgebung zu ändern:

Ich habe eine input.txt mit einer Liste meiner Servernamen, wobei diese Schleife Zeile für Zeile Servernamen aufnimmt. Gleichzeitig versuche ich, eindeutige Anmeldeinformationen im Skript zu haben, damit ich die Anmeldeinformationen für sie nicht manuell eingeben muss. Hier ist mein Skript. Das Problem, mit dem ich konfrontiert bin, ist, dass die Anmeldeinformationen bei der Ausführung von systeminfo.exe nicht als Werte übergeben werden.

for /f "delims=" %%a in (c:\Uptime\Input.txt) do (  
    echo %%a  
    set x=yellow  
    set login=%x%%%a  
    set pwd=%%a%x%  
    echo %login% pwd %pwd%  
    systeminfo /s %%a /u %login% /p %pwd% | find "System Up Time" >> c:\Uptime\A.txt  
    pause  
)  

Wenn ich diese Batchdatei ausführe, erhalte ich Folgendes:

C:\Uptime>(  
echo Server1  
 set x=yellow  
 set login=Server1 <- it should be: yellowServer1  
 set pwd=Server1  <- it should be: Server1yellow  
 echo  pwd <- not showing the values of variables from above, should be: yellowServer1 Server1yellow  
 systeminfo /s Server1 /u  /p    | find "System Up Time"  1>>c:\Uptime\A.txt  
 pause  
)  
Server1  
 pwd  
ERROR: Invalid Syntax. Value expected for '/u'.  
Type "SYSTEMINFO /?" for usage.  
Press any key to continue . . .  

Ich bin nicht sicher, warum die Werte nicht aus den Variablen in der Systeminfo-Befehlszeile übernommen werden.

Antwort2

Für Sie ist das wahrscheinlich zu spät, sollte aber für alle anderen nützlich sein, die nach etwas Ähnlichem suchen, so wie ich kürzlich ...

Sie geben in Ihrer Befehlszeile nicht die richtigen Informationen an. Außerdem systeminfohat der Befehl nur eine Startzeit, keine Betriebszeit. Das würde eine leere Datei erstellen.

systeminfo /s Server1 /u %login%  /p %pwd%   | find "System Boot Time"  >> c:\Uptime\A.txt

Sie können cut„from“ verwenden unixutils, um die Datei weiter zu bereinigen.

verwandte Informationen