[[:win|{{ :WindowsLogo.png?40|}}]] ===== 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// {{keywords>windows dienste kommandozeile sc config deman auto disabled GetDisplayName GetKeyName EnumDepend depend}}