Batchdatei zum Abrufen der Systeminformationen der Remote-Server-Liste mit eindeutigen Anmeldeinformationen

5030
user196506

Ich bin nicht mit dem Scripting vertraut. Ich habe eine Aufgabe zur Hand, bei der die Verfügbarkeit der Server überprüft werden muss, um sicherzustellen, dass sie tatsächlich neu gestartet wurden, wenn sie dies vermuten.

Ich habe die Google-Suche durchlaufen und habe eine Idee von einer input.txtDatei gefunden, die alle Servernamen enthält und output.txtdie das Ergebnis enthält.

Das Problem ist, dass jeder Server über ein eindeutiges allgemeines Login verfügt. zB Login-Name ist domain\server1, Passwort ist server1domain. Meine Eingabedatei sieht so aus:

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

Ich würde gerne verwenden serverinfo /s | find "uptime" >>c:\output.txtund output.txtich wäre gerne:

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

und so weiter bis zum Ende der input.txtDatei.

Könnte jemand eine sehr einfache Batchdatei erstellen?

-1
Hallo Ben! Herzlich Willkommen zu Super User! Bitte überprüfen Sie Ihre Formatierung beim Posting. Ein Vorschaufenster zeigt Ihnen, wie Ihre Frage aussehen wird. Sie müssen unsere [Formatierungshilfe] (http://superuser.com/editing-help) überprüfen. Könnten Sie vielleicht Ihre Frage [bearbeiten] und uns zeigen, was Sie bereits haben und wo genau Sie stecken? Vergessen Sie nicht, den Code um 4 Leerzeichen einzuziehen (oder wählen Sie ihn aus und drücken Sie die Tastenkombination "Strg-K"). slhck vor 11 Jahren 2

2 Antworten auf die Frage

0
Ben

Ich habe einige Änderungen vorgenommen, ich hoffe, es würde helfen. Was ich zur Zeit habe, ist eine Batch-Datei, die ich je nach Umgebung ändern wollte:

Ich habe eine input.txt mit einer Liste meiner Servernamen, wobei diese Schleife Servernamen Zeile für Zeile aufnimmt. Gleichzeitig versuche ich, eindeutige Anmeldeinformationen im Skript zu haben. Auf diese Weise muss ich die Anmeldeinformationen nicht manuell eingeben. Hier ist mein Skript. Das Problem, vor dem ich stehe, ist, dass die Anmeldeinformationen nicht als Werte übergeben werden, wenn systeminfo.exe ausgeführt wird.

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 Batch-Datei ausführen, 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 es die Werte nicht aus den Variablen in der Zeile systeminfo cmd entnimmt.

0
Peter van der Struys

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

Sie geben nicht die richtigen Informationen in Ihrer Befehlszeile an. Der systeminfoBefehl hat nur eine Startzeit, keine Betriebszeit. Das würde eine leere Datei erzeugen.

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

Sie können mit cutvon unixutilsdie Datei mehr bereinigen.