Windows Dienste über Command Shell steuern

Windows Dienste können GUI basiert in einer MMC (Microsoft Management Console) gesteuert werden (→ services.msc). Sie haben aber auch die Möglichkeit diese über eine Command Shell anzusprechen, dazu stehen Ihnen die Kommandos net [start|stop] oder sc zur Verfügung. Hier einige Anwendungsbeispiele:

Dienste anhalten und starten

Dienste anhalten und starten → net stop|start dienstname:

C:\> net stop w32time
Windows-Zeitgeber wird beendet.
Windows-Zeitgeber wurde erfolgreich beendet.

C:\> net start w32time
Windows-Zeitgeber wird gestartet.
Windows-Zeitgeber wurde erfolgreich gestartet.

Sie können beide Befehle auch kombinieren:

C:\> net stop w32time && net start w32time
Windows-Zeitgeber wird beendet.
Windows-Zeitgeber wurde erfolgreich beendet.
Windows-Zeitgeber wird beendet.
Windows-Zeitgeber wurde erfolgreich beendet.

Startart konfigurieren

Um die Startart eines Dienstes zu beeinflussen, benutzen Sie das sc-Kommando. Um einen Dienst zu deaktivieren verwenden Sie folgenden Befehl:

C:\> sc config w32time start= disabled
[SC] ChangeServiceConfig SUCCESS

Um die Startart auf »Manuell« zu setzen, verwenden Sie folgenden Befehl:

C:\> sc config w32time start= demand
[SC] ChangeServiceConfig SUCCESS

Um die Startart auf »Automatisch« zu stellen, verwenden Sie folgenden Befehl:

C:\> sc config w32time start= auto
[SC] ChangeServiceConfig SUCCESS

Um die Startart auf »Automatisch (Verzögerter Start)« zu stellen, verwenden Sie folgenden Befehl (≥ Vista, 2008):

C:\ sc config w32time start= delayed-auto

Dienstinformationen abfragen

Um den aktuellen Status eines Dienstes abzufragen, können Sie den SC-Parameter »query« verwenden:

C:\> sc query w32time
SERVICE_NAME: w32time 
 TYPE               : 20  WIN32_SHARE_PROCESS  
 STATE              : 4  RUNNING 
                         (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
 WIN32_EXIT_CODE    : 0  (0x0)
 SERVICE_EXIT_CODE  : 0  (0x0)
 CHECKPOINT         : 0x0
 WAIT_HINT          : 0x0

Um den Dienstnamen dem Anzeigenamen, wie er zB auch in der Systemsteuerung angezeigt wird, zuzuordnen, verwenden Sie den SC-Parameter »GetDisplayName«:

C:\> sc GetDisplayName w32time
[SC] GetServiceDisplayName ERFOLG
Name = Windows-Zeitgeber

Wenn Sie umgekehrt, den Anzeigennamen kennen, zB wird in der Ereignisanzeige oft nur der Anzeigename als Quelle angegeben, können Sie den dazugehörigen Dienst mit dem Parameter »GetKeyName« ermitteln:

C:\> sc GetKeyName Windows-Zeitgeber
[SC] GetServiceKeyName ERFOLG
Name = W32Time

Angaben zur Konfiguration eines Dienstes können Sie mit dem Parameter »qc [KeyName]« (Query Config) anzeigen:

C:\> sc qc tlntsvr
[SC] QueryServiceConfig ERFOLG
SERVICE_NAME: tlntsvr
 TYPE               : 10  WIN32_OWN_PROCESS 
 START_TYPE         : 4   DISABLED
 ERROR_CONTROL      : 1   NORMAL
 BINARY_PATH_NAME   : C:\WINDOWS\system32\tlntsvr.exe
 LOAD_ORDER_GROUP   : 
 TAG                : 0
 DISPLAY_NAME       : Telnet
 DEPENDENCIES       : RPCSS
                    : TCPIP
                    : NTLMSSP
 SERVICE_START_NAME : NT AUTHORITY\LocalService



Abhängigkeiten abrufen

Das og »sc qc« Kommando gibt in der Zeile »DEPENDENCIES« bereits Auskunft, von welchen Diensten ein Dienst abhängig ist. Im og Beispiel ist der »Telnet«-Dienst von den Diensten »RPCSS«, »TCPIP« und »NTLMSSP« abhängig.

Umgekehrt können Sie mit dem SC-Parameter »EnumDepend [Keyname]« (Enumarate Dependencies) die Dienste ermitteln, die von diesem Dienst ([Keyname]) abhängig sind:

C:\> sc EnumDepend tcpip
[SC] EnumDependentServices: entriesread = 5
SERVICE_NAME: TlntSvr
DISPLAY_NAME: Telnet
 TYPE               : 10  WIN32_OWN_PROCESS  
 STATE              : 1  STOPPED 
                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN))
 WIN32_EXIT_CODE    : 1077  (0x435)
 SERVICE_EXIT_CODE  : 0  (0x0)
 CHECKPOINT         : 0x0
 WAIT_HINT          : 0x0
.
.
.
[SC] EnumDependentServices: weitere Daten, benötigt 1392 Bytes

Note: Sollte die Ausgabe eine Meldung wie im og Beispiel bringen, dass weitere Daten verfügbar sind, können Sie dem »EnumDepend« Parameter eine Puffergröße in Byte mitgeben ( → »sc EnumDepend tcpip 1392«)

Abhängigkeiten hinzufügen / entfernen

Um einen Dienst (keyname) von einem anderen Dienst (keyname2) abhängig zu machen, verwenden Sie das folgende Kommando:

sc config [keyname] depend= [keyname2]

Note: Dadurch werden alle bereits vorhandenen Abhängigkeiten entfernt und durch die im Kommando übergebenen Dienste ersetzt. Sollte ein Dienst bereits Abhängigkeiten besitzen, müssen Sie diese im og Kommando wieder mit übergeben, wobei der Trenner ein Slash ohne Leerzeichen ist. Welche Abhängigkeiten ein Dienst bereits besitzt, können Sie mit den og Kommandos ermitteln:

sc config [keyname] depend= [keyname2]/[keyname3]/[keyname4]

Möchten Sie Abhängigkeiten eines Dienstes komplett entfernen, verwenden Sie folgendes Kommando:

sc config [keyname] depend= /

pronto 2010/08/24 22:53

win/cmd_services.txt (26475 views) · Zuletzt geändert: 2011/08/02 14:24 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0