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.

1. Öffne Computerverwaltung
1. Öffne Computerverwaltung
2. Öffne Administratorengruppe
2. Öffne Administratorengruppe
3. Füge den Benutzer hinzu
3. Füge den Benutzer hinzu

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:

Windows Remote herunterfahren

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:

Windows 2003 Server Remote Herunterfahren

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)