
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.txt
Datei gefunden, die alle Servernamen enthält und output.txt
das 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.txt
und output.txt
mö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 systeminfo
hat 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.