Aktionen

Windows:Rechner oder Server per Batch/Script remote neu starten

Aus znilwiki

Die fertigen Batch-Dateien stehen weiter unten!

In jedem Windows ist der Befehl

shutdown

eingebaut. Diese kann sowohl den lokalen Rechner als auch andere Rechner im Netzwerk herunterfahren oder neu starten.

Am besten funktioniert das natürlich innerhalb einer Domäne.

Zusätzlich zu allen Parametern kann man ggf. noch

/f

angeben - das schliesst ggf. alle Anwendungen ohne Rückfrage. Word würde also z.B. geschlossen ohne das Dokument zu speichern.


1 Beispiel Neustart


shutdown /r /M \\SERVER1 /t 60 /c "Neustart Test per shutdown.exe" /d p:0:0

shutdown                         : Der eigenliche Befehl
/r                               : Neu starten
/M \\SERVER1                     : welcher Rechner soll neu gestartet werden? Hier SERVER1
/t 60                            : Wartezeit in Sekunden vor dem Neustart
/c "Neustart Test ..."           : Kommentar, wir im Ereignisprotokoll eingetragen
/d p:0:0                         : Grund für den Neustart - hier: Anderer Grund (geplant)




2 Beispiel Herunterfahren


shutdown /s /M \\SERVER1 /t 10 /c "Nur so" /d p:0:0

shutdown                         : Der eigenliche Befehl
/s                               : Herunterfahren
/M \\SERVER1                     : welcher Rechner soll heruntergefahren werden? Hier SERVER1
/t 10                            : Wartezeit in Sekunden vor dem Neustart
/c "Nur so"                      : Kommentar, wir im Ereignisprotokoll eingetragen
/d p:0:0                         : Grund für den Neustart - hier: Anderer Grund (geplant)




3 Batchdatei für Neustart mehrer Rechner Variante 1

Bei dieser Variante haben wir nur eine einzige Datei. Die Namen der Rechner stehen direkt im Script.

RechnerNeuStartenV1.txt

@echo off
REM ** RechnerNeuStartenV1.cmd ***********************************************
REM ** 2012 von Bernhard Linz für znil.net ***********************************
REM ** admin@znil.de *********************************************************

REM ## 1. Wartezeit zwischen Neustart der einzelnen Rechner angeben:
set WARTEZEIT=30
REM ## 2. Wieviele Sekunden soll der Benutzer eine Warnung bekommen?
set WARNUNGSZEIT=600

REM ## 3. Namen der Rechner die neu gestartet werden soll
REM ##    NetBIOS, DNS-Name oder IP-Adresse
REM ##    Zeilen kopieren , immer das 'call :RESTART' davor lassen
call :RESTART PC100
call :RESTART PC120.domain.local
call :RESTART 192.168.169.170
call :RESTART Mailserver
call :RESTART Fileserver

REM ##########################################################################
REM ##########################################################################
REM ##########################################################################
REM ## ab hier nichts ändern #################################################
REM ##########################################################################
REM ##########################################################################

goto ENDE

REM ** Hauptschleife
:RESTART
echo.
echo Verarbeite Rechner/Server: %1
echo Warte %WARTEZEIT% Sekunden ...
ping -n %WARTEZEIT% %1 >NUL
echo Initiiere Neustart mit Warnung von %WARNUNGSZEIT% fuer den Benutzer ...
shutdown /r /M \\%1 /t %WARNUNGSZEIT% /f /c "RechnerNeuStartenV1.cmd" /d p:0:0
echo Neustart initiiert!
REM /f ist eigentlich überflüssig - macht er sowieso wenn /t einen Wert größer 0 hat
goto :EOF

REM ##########################################################################
:ENDE




4 Batchdatei für Neustart mehrer Rechner Variante 2

Bei dieser Variante lesen wir die Namen der Rechner aus einer zweiten Textdatei ein. In der Textdatei muss pro Zeile ein Rechnername stehen.

RechnerNeuStartenV2.txt

@echo off
@echo off
REM ** RechnerNeuStartenV2.cmd ***********************************************
REM ** 2012 von Bernhard Linz für znil.net ***********************************
REM ** admin@znil.de *********************************************************

REM ## 1. Name der Textdatei aus der die Rechner ausgelesen werden sollen,
REM ##    Nur ein Name pro Zeile
set LISTE=Reboot_XP-test.txt

REM ## 2. Wieviele Sekunden soll der Benutzer eine Warnung bekommen?
set WARNUNGSZEIT=600

REM ## 3. Wartezeit zwischen Neustart der einzelnen Rechner angeben:
set WARTEZEIT=30

REM ##########################################################################
REM ##########################################################################
REM ##########################################################################
REM ## ab hier nichts ändern #################################################
REM ##########################################################################
REM ##########################################################################

for /F "eol=# tokens=1" %%i in (%LISTE%) do call :RESTART %%i

goto ENDE

REM ** Hauptschleife
:RESTART
echo.
echo Verarbeite Rechner/Server: %1
echo Warte %WARTEZEIT% Sekunden ...
ping -n %WARTEZEIT% %1 >NUL
echo Initiiere Neustart mit Warnung von %WARNUNGSZEIT% fuer den Benutzer ...
shutdown /r /M \\%1 /t %WARNUNGSZEIT% /f /c "RechnerNeuStartenV2.cmd" /d p:0:0
echo Neustart initiiert!
REM /f ist eigentlich überflüssig - macht er sowieso wenn /t einen Wert größer 0 hat
goto :EOF

REM ##########################################################################
:ENDE



--Bernhard Linz 12:19, 23. Apr. 2012 (CEST)


Anonymer Benutzer #1

11 Monaten zuvor
Punktzahl 0++
was muss ich mach, da die Meldung kommt, dass der Server den "Zugriff verweigert"

BLinz

11 Monaten zuvor
Punktzahl 0++

Das Skript mit Administratoren-Rechten ausführen / als Domänen-Admin ausführen.

Eventuell schießt auch die UAC-Kontrolle quer - dann auch als Benutzer "Administrator" ausführen.
Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, registriere dich bitte oder melde dich an.