Windows-PC per Fernverwaltung herunterfahren - Remote-Shutdown im Netzwerk
Wer ein kleines Heimnetzwerk betreibt und auf die Stromkosten achtet kennt das nervige Problem: alle nicht benötigten Windows-Computer müssen manuell heruntergefahren werden. Das heißt, man begibt sich zu jedem Rechner und schaltet diesen dann per "Schalter drücken" oder sogar klassisch über "Start - Herunterfahren" aus. Ärgerlich wird es, wenn man des öfteren vergisst, die Rechner herunterzufahren, und diese dann unnötig Stromkosten verursachen.
Es gibt sicherlich noch viele weitere Gründe, warum man bequem über das Netzwerk andere Windows-Rechner herunterfahren möchte. In diesem Artikel wird gezeigt, wie man sich ein kleines, einfaches Skript erstellt, mit dem man ausgewählte Windows-Clients in einem Netzwerk per Fernzugriff herunterfährt.
Vorbereitung - Zugriffsrechte zuweisen
Die wichtigste Grundlage, damit der Remote-Shutdown funktioniert, sind die Berechtigungen. Damit man einen entfernten Windows-Client herunterfahren kann, benötigt man auf dem diesem auch das Recht, dieses zu tun. Die einfachste Möglichkeit ist, auf dem entfernten Windows-Client einen gleichnamigen Benutzer anzulegen und diesen in die lokale Administrator-Gruppe hinzuzufügen. Dieser Benutzer hat natürlich auch das identische Passwort.
Vereinfacht gesagt: Melde ich mich an meinem PC mit Fritz und dem Passwort 123 an, so muss sich auf dem entfernten PC ebenfalls ein Benutzer Fritz mit dem Passwort 123 befinden, der Mitglied der Gruppe Administratoren ist.
Natürlich sollten auch grundlegende Voraussetzungen wie Netzwerkverbindung oder Freigaben in der Firewall gegeben sein. Auf diese Dinge wird in diesem Artikel nicht eingegangen.
Shutdown fährt PC-Systeme herunter
Windows bringt standardmäßig das kleine Programm shutdown mit sich. Hiermit ist es möglich, sowohl das eigene als auch entfernte Windows-System herunterzufahren oder neuzustarten. Vielen ist sicherlich folgendes Dialogfenster bekannt:
Die Syntax von Shutdown ist relativ einfach. Um nach obigen Beispiel ein entferntes System herunterzufahren, gibt man folgenden Befehl in die Eingabeaufforderung ein:
shutdown -s -f -m \\srv001 -C "Das ist ein TEST-Shutdown" -t 25
Zur Erklärung die Parameter:
-s = Herunterfahren
-f = Erzwingen
-m \\Host = Welcher Rechner (IP-Adresse oder Computername)
-t 15 = Fahre in 15 Sekunden herunter
-c = "Meldung beim Herunterfahren"
Umsetzung als Skript
Folgendes Skript prüft zuerst, ob der entfernte Rechner erreichbar ist, fährt diesen dann herunter, um anschließend das eigene System herunterzufahren. Wenn man den folgenden Quellcode als Batch-Datei (bsp. shutdown.bat) speichert, kann man mit einem Mausklick zwei oder mehrere Systeme auf einmal herunterfahren. Wirklich praktisch:
@ECHO OFF
cls
ECHO *******************************************************
ECHO Windows-Rechner per Fernverwaltung
ECHO (remote) herunterfahren
ECHO Autor: Meik Schmidt
ECHO *******************************************************
ECHO.
SET server=192.168.178.40
ECHO *** Prüfe, ob Server im Netzwerk erreichbar ist
ECHO.
net view \\%server% >nul 2>nul
if errorlevel 1 (GOTO networkDown) else GOTO serverShutdown
:networkDown
cls
COLOR C
ECHO ============================================================
ECHO Finde Server nicht!
ECHO ============================================================
ECHO *** Sorry, aber der Server scheint nicht erreichbar zu sein!
ECHO *** Entweder ist der Server schon ausgeschaltet oder
ECHO *** die Netzwerkverbindung ist nicht vorhanden!
ECHO.
ECHO *** Bitte noch mal versuchen
ECHO.
PAUSE
GOTO EOF
:serverShutdown
cls
COLOR A
ECHO ============================================================
ECHO Server gefunden!s
ECHO ============================================================
ECHO *** Ok, der Server ist erreichbar und
ECHO *** wird in 3 Minuten heruntergefahren.
ECHO.
ECHO *** Auch Dein Rechner wird heruntergefahren!!!
REM *** Herunterfahren des Windows-Clients
REM *** -s = Herunterfahren
REM *** -f = Erzwingen
REM *** -m \\Host = Welcher Rechner (IP-Adresse oder Computername)
REM *** -t 15 = Fahre in 15 Sekunden herunter
REM *** -c "Meldung beim Herunterfahren"
REM *** Server herunterfahren
shutdown -s -f -m \\%server% -C "Befehl Herunterfahren von Client" -t 180
REM *** Eigenen PC herunterfahren
shutdown -s -f -c -t 10
PAUSE
GOTO EOF
Wie kann ich einen Windows 2003 Server remote herunterfahren
Um einen Windows 2003 Server für das entfernte Herunterfahren (remote shutdown) freizuschalten, muss man in den Lokalen Richtlinien die Benutzer oder Gruppen bei den Richtlinien "Erzwingen des Herunterfahrens von einem Remotesystem aus" und "Herunterfahren des Systems" hinzufügen. Dazu gibt man in der Eingabeaufforderung den Befehl "secpol.msc" ein wechselt zu den Lokalen Richtlinien:
Anschließend Server neustarten und den remote shutdown ausführen.
Komplette Syntax von shutdown
Allgemeine Erklärung für Shutdown
Syntax: shutdown [-l | -s | -r | -a] [-f] [-m \\Computer] [-t xx]
[-c "Kommentar"] [-d up:xx:yy]
Keine Argumente Zeigt diese Meldung an (wie -?).
-i Zeigt eine grafische Benutzeroberfl„che an (muss die erste
Option sein).
-l Abmelden (kann nicht mit der Option -m verwendet werden).
-s Fährt den Computer herunter.
-r Fährt den Computer herunter und startet ihn neu.
-a Bricht das Herunterfahren des Systems ab.
-m \\Computer Remotecomputer zum Herunterfahren/Neustarten/Abbrechen.
-t xx Zeitlimit für das Herunterfahren, in xx Sekunden.
-c "Kommentar" Kommentar für das Herunterfahren (maximal 127 Zeichen).
-f Erzwingt das Schlieáen ausgeführter Anwendungen ohne Warnung.
-d [u][p]:xx:yy Grund (Code) für das Herunterfahren:
u = Benutzercode
p = Code fr geplantes Herunterfahren
xx = Hauptgrund (positive ganze Zahl kleiner als 256)
yy = Weiterer Grund (positive ganze Zahl kleiner als 65536)