Windows-Dienste (services) remote starten und stoppen

Mithilfe von PsTools Dienste auf entfernten Rechnern im Netzwerk steuern

Die Software-Suite PsTools By Mark Russinovich enthält eine Fülle nützlicher Tools, welche die Fernverwaltung von PC-Systemen im Netzwerk ermöglichen:

PsExec - Prozesse auf einem entfernten Rechner ausführen
PsFile - Geöffnete Dateien auf einem entfernten Rechner anzeigen
PsGetSid - Benutzer-SID des angemeldeten Benutzers auslesen
PsInfo - Informationen über ein PC-System auslesen
PsKill - Prozesse auf einem entfernten Rechner beenden (killen)
PsList - Gestartete Prozesse anzeigen
PsLoggedOn - Wer ist momentan an dem PC angemeldet?
PsLogList - Ereignis-Log erstellen
PsPasswd - Passwörter auf dem entfernten Rechner ändern
PsService - Entfernte Windows-Dienste steuern (start, stop, restart)
PsShutdown - PCs im Netzwerk herunterfahren und stoppen
PsSuspend - Prozesse schlafen legen
PsUptime - Wie lange ist das System schon eingeschaltet?

In dieser Anleitung wird gezeigt, wie man Windows-Dienste auf einem entfernten Rechner im Netzwerk steuert, d.h. starten, stoppen, neustarten, anzeigen, usw. Hierfür wird das Programm PsService verwendet. Anhand dieser Anleitung kann man auch die anderen Programmen aus der Software-Suite PsTools benutzen.

Vorbereitung - Zugriffsberechtigung

Damit die oben genannten Programme überhaupt ausgeführt werden können, benötigt man Zugriffsrechte auf dem entfernten Rechner im Netzwerk. Es wäre katastrophal, wenn man jeden beliebigen Rechner aus der Ferne manipulieren könnte, ohne sich mit administrativen Rechten authentifizieren zu müssen. Das bedeutet, man benötigt den Loginname und das Passwort eines Benutzers auf dem entfernten Rechner, der über administrative Rechte verfügt. In der Regel ist dies der Benutzer "Administrator". Beim Einsatz der PsTools muss man also in irgendeiner Form Login und Passwort übermitteln, ansonsten werden die eigenen Benutzerdaten übergeben, was zu Meldungen wie "Zugriff nicht erlaubt" führt.

Schauen wir uns einmal die Optionen von PsService an (Hinweis: alle folgenden Befehle werden in der Microsoft Eingabeaufforderung ausgeführt. Pfade müssen angepasst werden):

c:\>C:\Programme\Support-Tools\PsTools\PsService.exe /?

PsService v2.24 - Service information and configuration utility
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

PsService lists or controls services on a local or remote system.

Usage: PsService.exe [\\Computer [-u Username [-p Password]]] 
Cmd is one of the following:
   query      Queries the status of a service
   config     Queries the configuration
   setconfig  Sets the configuration
   start      Starts a service
   stop       Stops a service
   restart    Stops and then restarts a service
   pause      Pauses a service
   cont       Continues a paused service
   depend     Enumerates the services that depend on the one specified
   find       Searches for an instance of a service on the network
   security   Reports the security permissions assigned to a service
Use the username and password to log into the remote computer in cases where
your account does not have permissions to perform the action you specify.

Omitting a command queries the active services on the specified computer.
Enter -? for help on a particular command.

Um uns die Dienste auf dem entfernten Rechner anzeigen zu lassen, geben wir die Optionen -u (für User) und -p (für Passwort) mit an:

C:\>C:\Programme\Support-Tools\PsTools\PsService.exe \\192.168.178.35 -u Administrator -p XXX

Wenn es bei dieser Art Probleme bei der Authentifizierung geben sollte, kann man mit net use eine RPC-Verbindung aufbauen. Die Syntax ist wie folgt:

C:\>net use \\computer /USER:computer\benutzer passwort 

### Beispiele
net use \\192.168.178.35 /USER:192.168.178.35\administrator xxx
net use \\pc-wohnzimmer /USER:pc-wohnzimmer\administrator xxx

Wenn die Authentifizierung erfolgreich war, kann man sich die hergestellte RPC-Verbindung anzeigen lassen. Dazu einfach net use ohne weitere Parameter in Shell eingeben.

Anleitung - Windows Dienste Remote steuern

Wenn die Sache mit der Benutzerauthentifizierung problemlos funktioniert, ist die eigentlich Steuerung der Windows-Dienste ein Kinderspiel: man lässt sich zuerst (sofern man den genauen Namen des Windows-Dienstes nicht kennt) alle Dienste auf dem entfernten Rechner anzeigen:

### Dienste anzeigen lassen 
C:\>C:\Programme\Support-Tools\PsTools\PsService.exe \\192.168.178.35 -u Administrator -p XXX

Entscheidend ist der Eintrag SERVICE_NAME. Mit dieser Bezeichnung können wir arbeiten. In folgenden Beispielen steuern wir den Windows Zeitgeber-Dienst

### Dienst starten 
C:\>C:\Programme\Support-Tools\PsTools\PsService.exe \\192.168.178.35 start w32time

### Dienst stoppen
C:\>C:\Programme\Support-Tools\PsTools\PsService.exe \\192.168.178.35 stop w32time

### Dienst neustarten
C:\>C:\Programme\Support-Tools\PsTools\PsService.exe \\192.168.178.35 restart w32time

Fazit

Der wahrscheinlich schwierigste Punkt ist die Benutzerauthentifizierung an dem entfernten Rechner. Hier gibt es viele Fehlerquellen (falsche Login-Daten, Benutzer mit zu wenig Rechten, Windows Firewall, usw.). Hat man sich einmal erfolgreich am entfernten Rechner angemeldet, so kann man die Programme aus der Software-Suite PsTools problemlos einsetzen.