Scriptgesteuerte shutdown Reihenfolge von Windows 2k3 Server
Hallo,
ich hab ein Problem und ich hoffe, dass Ihr mir weiterhelfen könnt, denn ich habe momentan nicht die geringste Ahnung, wie ich das Problem angehen kann.
Wir haben in unserem Rechenzentrum mehrere Windows 2k3 Server laufen und ich habe die Aufgabe bekommen, einen Script zu schreiben, die vielen Server die wir hier am laufen haben, in einer bestimmten Reihenfolge herunter zu fahren und ebenfalls auch wieder in einer bestimmten Reihenfolge wieder zu starten.
Ich hoffe, dass ihr schon Erfahrung oder eine Idee habt, in der ich weiter suchen kann.
Vielen Dank im voraus für eure Hilfe.
ich hab ein Problem und ich hoffe, dass Ihr mir weiterhelfen könnt, denn ich habe momentan nicht die geringste Ahnung, wie ich das Problem angehen kann.
Wir haben in unserem Rechenzentrum mehrere Windows 2k3 Server laufen und ich habe die Aufgabe bekommen, einen Script zu schreiben, die vielen Server die wir hier am laufen haben, in einer bestimmten Reihenfolge herunter zu fahren und ebenfalls auch wieder in einer bestimmten Reihenfolge wieder zu starten.
Ich hoffe, dass ihr schon Erfahrung oder eine Idee habt, in der ich weiter suchen kann.
Vielen Dank im voraus für eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 129478
Url: https://administrator.de/forum/scriptgesteuerte-shutdown-reihenfolge-von-windows-2k3-server-129478.html
Ausgedruckt am: 06.04.2025 um 16:04 Uhr
12 Kommentare
Neuester Kommentar
Hallo,
wie exellent schon schrieb: Herunterfahren mit shutdown.exe (in ein Script einbauen, muss unter Admin-Account ausgeführt werden). Schwieriger wird es schon, wenn auf das Beenden bestimmter Dienste gewartet werden muss, bevor der nächste Rechner herunterfährt etc., aber das läßt sich alles über ein Script machen.
Beim Starten sieht das etwas anders aus, da stellt sich zunächst die Frage, wie werden die Rechner technisch gestartet? Per Wake on Lan, über geschaltete Spannungsversorgungen (USV/Steckdose)?
Je nachdem gibt es da entweder z.B. wake.exe (WoL), die Tools des USV-Herstellers oder des Herstellers der IP-Steckdosenbox.
wie exellent schon schrieb: Herunterfahren mit shutdown.exe (in ein Script einbauen, muss unter Admin-Account ausgeführt werden). Schwieriger wird es schon, wenn auf das Beenden bestimmter Dienste gewartet werden muss, bevor der nächste Rechner herunterfährt etc., aber das läßt sich alles über ein Script machen.
Beim Starten sieht das etwas anders aus, da stellt sich zunächst die Frage, wie werden die Rechner technisch gestartet? Per Wake on Lan, über geschaltete Spannungsversorgungen (USV/Steckdose)?
Je nachdem gibt es da entweder z.B. wake.exe (WoL), die Tools des USV-Herstellers oder des Herstellers der IP-Steckdosenbox.
Hallo,
hier mal ein Script für das Herunterfahren in einer definierten zeitlichen Reihenfolge.
Dazu wird das Programm psshutdown.exe (aus den PStools) verwendet.
Das Starten der Rechner kann dann, wie schon von jhinrichs beschrieben durchgeführt werden.
vG Lars
hier mal ein Script für das Herunterfahren in einer definierten zeitlichen Reihenfolge.
Dazu wird das Programm psshutdown.exe (aus den PStools) verwendet.
@echo off
:: Script zum Herunterfahren der Server
set LOG=c:\shutdown-server.log
set PSI=c:\Programme\PSTools\
set DIF=20
set /A SEK=10
for %%i IN (sv04 sv03 sv02 sv01) do call :TESTA %%i
goto ENDE
:TESTA
set COMP=%1
set /A SEK=%SEK%+%DIF%
echo SHUTDOWN %COMP% in %SEK% Sekunden >> %LOG%
start "" "%PSI%\psshutdown -s -f -t %SEK% -e P:0:0 \\%COMP%"
goto :EOF
:ENDE
set LOG=
set PSI=
set DIF=
set SEK=
Das Starten der Rechner kann dann, wie schon von jhinrichs beschrieben durchgeführt werden.
vG Lars

Servus,
"richtiger" Ansatz
- das würde ich eher nicht so (auf jedem Server) realisieren - sondern mit einem zentralen Script dass nacheinander der Server rebootet - dann wartet - ob ein gewisser Dienst auf den Servern läuft und dann die anderen startet - bzw. bei denen - die später hochkommen sollen - einen längeren "T" dransetzen - oder per ping -n 10 127.0.0.1 zwischen den Reboots warten und immer die gleiche "t" beim shutdownbefehl einsetzen.
Wichtig bei der ganzen Nummer ist - das checken, ob die Server wirklich wieder online sind und benachrichtigung / per Bmail / SMS / Nagios.
Dazu dann jeweils ein
Gruß
Zitat von @exellent:
schau dir mal im cmd den befehl shutdown an (shutdown /?)
zB. startet der Befehl shutdown -r -t0 den Server sofort neu
schau dir mal im cmd den befehl shutdown an (shutdown /?)
zB. startet der Befehl shutdown -r -t0 den Server sofort neu
"richtiger" Ansatz
..um das zeitgesteuert anzustellen, kannst du diesen Befehl mit den "geplanten Tasks" in der Systemsteuerung starten.
- das würde ich eher nicht so (auf jedem Server) realisieren - sondern mit einem zentralen Script dass nacheinander der Server rebootet - dann wartet - ob ein gewisser Dienst auf den Servern läuft und dann die anderen startet - bzw. bei denen - die später hochkommen sollen - einen längeren "T" dransetzen - oder per ping -n 10 127.0.0.1 zwischen den Reboots warten und immer die gleiche "t" beim shutdownbefehl einsetzen.
Wichtig bei der ganzen Nummer ist - das checken, ob die Server wirklich wieder online sind und benachrichtigung / per Bmail / SMS / Nagios.
Dazu dann jeweils ein
if exist \\server\freigabe
anstattping server
wenn es ein Fileserver ist.Gruß
Hallo,
u. a. deswegen ja das zentrale Skript zur Steuerung. Da kann man dann - wie beim Hochfahren auch - z. B. per ping etc. testen, ob ein Rechner down/up ist.
Man kann natürlich auch in dezentralen Skripts so eine Abfrage machen, läuft dann aber in Gefahr, Deadlocks (Rechner A wartet auf Rechner B, der auf C, und der wieder auf A) etc. zu produzieren, da die ganze Sache schnell unübersichtlich wird.
u. a. deswegen ja das zentrale Skript zur Steuerung. Da kann man dann - wie beim Hochfahren auch - z. B. per ping etc. testen, ob ein Rechner down/up ist.
Man kann natürlich auch in dezentralen Skripts so eine Abfrage machen, läuft dann aber in Gefahr, Deadlocks (Rechner A wartet auf Rechner B, der auf C, und der wieder auf A) etc. zu produzieren, da die ganze Sache schnell unübersichtlich wird.

Servus,
als "Skizze" - die ungestetste - aber trotzdem funktionieren sollte...
Gruß
als "Skizze" - die ungestetste - aber trotzdem funktionieren sollte...
shutdown -r -m \\server1
:checkserver1
ping -n 10 server1 && goto checkserver1 || shutdown -r -m \\server2
Gruß

<fingerschnippstrebermodus>
aus bleiben - wer will dass denn auf einem Server?
Und wenn das "offline" was länger sein soll - dann nehm ich vom Marc das Pagedfrg und stell da einen riesen Timeout rein.
</fingerschnippstrebermodus>
aus bleiben - wer will dass denn auf einem Server?
Und wenn das "offline" was länger sein soll - dann nehm ich vom Marc das Pagedfrg und stell da einen riesen Timeout rein.
</fingerschnippstrebermodus>
Ich mach das ganze mit Servern, die in anderen Standorten stehen.
Und wenn ich dort nicht mindestens einen hab - an den ich "komme" - kann ich auch die anderen nicht per Wol wecken
Von daher ist bei "mir" -r schon fast genetisch bedingt.
So wie andere @echo off in Ihre unfertigen Skripte schreiben
Zitat von @60730:
> aus bleiben - wer will dass denn auf einem Server?
> aus bleiben - wer will dass denn auf einem Server?
Mein Frau - des nachts bei meinem Server zu Hause
Zur Frage: shutdown -r ist sinnvoll bei dem "Master"-Server, der den Shutdown/Start der anderen steuert, da ja auch das Hochfahren in einer definierten Reihenfolge ablaufen soll. Wenn jetzt nach dem wohlgeordneten Einschlafen jeder so unkoordiniert (wie meine Mitarbeiter hier und wahrscheinlich auch Bibers Praktikantinnen) aus dem Schlaf erwacht.....