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 → 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.
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
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
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«)
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