Home

Sitemap

Auswahlseite

Ab Windows® XP
SC — Service Control zur Verwaltung der Systemdienste per Kommandozeile

Dies ab Windows XP mitgelieferte Kommandozeilenprogramm ermöglicht die Verwaltung der Systemdienste.

Zur Dokumentation (wie sind die Systemdienste bzw. Services meines Rechner konfiguriert ?) bietet sich der Aufruf
sc query state=all>d:\temp\dienste.txt
an. Die ermitteltet Konfiguration wird dann in die hinter dem >-Zeichen genannte Datei geschrieben. Die Anfertigung einer solchen Dokumentation ist insbesondere bei der inflationär angewachsenen Anzahl von Services bei den Windows-Versionen ab Windows 7 geradezu unerlässlich.
Weitere Hilfe zu Befehlen wird nach Eingabe von sc [Befehl] angezeigt.

Anwendungsbeispiel

Kommandos für das Dienstverwaltungsprogramm SC
query Fragt den Status eines Dienstes ab oder listet den Status für Arten von Diensten.

Die vollständige Aufrufsyntax ist:
sc [ServerName] query [Dienstname] [type= {driver|service|all}]
[type= {own|share|interact|kernel|filesys|rec|adapt}] [state= {active|inactive|all}]
[bufsize= BufferSize] [ri= ResumeIndex] [group= GroupName]
Hinter den Gleichheitszeichen muss jeweils ein Zwischenraumzeichen angegeben werden!

Die Option [Servername] hat das Format „\ServerName”. Diese Option wird nicht verwendet, wenn derjenige PC gemeint ist, auf dem SC ausgeführt wird.

queryexFragt den erweiterten Status eines Dienstes oder zählt den Status für von Diensten auf.
startStartet einen Dienst
pauseSendet eine PAUSE-Steuerungsanfrage an einen Dienst.
interrogateSendet eine INTERROGATE-Steuerungsanfrage an einen Dienst.
continueSendet eine CONTINUE-Steuerungsanfrage an einen Dienst.
stopSendet eine STOPP-Steuerungsanfrage an einen Dienst.
configÄndert die Konfiguration eines Dienstes (dauerhaft).
descriptionÄndert die textliche Beschreibung eines Dienstes.
failureÄndert die Aktionen beim Fehlschlagen eines Dienstes.
failureflagÄndert das Fehleraktionsflag eines Dienstes.
sidtypeÄndert den SID-Typ eines Dienstes.
privsÄndert die erforderlichen Berechtigungen eines Dienstes.
qcFragt die Konfigurationsinformationen eines Dienstes ab.
qdescriptionFragt die Beschreibung eines Dienstes ab.
qfailureFragt die Aktionen ab, die bei einem Dienstfehler ausgeführt werden sollen.
qfailureflagFragt das Fehleraktionsflag eines Dienstes ab.
qsidtypeFragt den SID-Typ eines Dienstes ab.
qprivsFragt die erforderlichen Rechte eines Dienstes ab.
deleteLöscht einen Dienst (aus der Registrierung).
createErstellt einen Dienst. d.h. trägt ihn in die Registrierung ein).
controlSendet eine Steuerung an einen Dienst.
sdshowZeigt die Sicherheitsbeschreibung eines Dienstes an.
sdsetLegt die Sicherheitsbeschreibung eines Dienstes fest.
showsidZeigt die Dienst-SID an, passend zu einem zufälligen Namen.
GetDisplayNameRuft den Displaynamen eines Dienstes ab.
GetKeyNameRuft den Servicekeynamen für einen Dienst ab.
EnumDependListet die Dienstabhängigkeiten auf.
Die folgenden Befehle benötigen keinen Dienstnamen:
boot ok
boot bad
Damit wird angegeben, ob der letzte Neustart als die letzte als funktionierend bekannte Konfiguration gespeichert werden soll.
LockSperrt die Dienstdatenbank.
QueryLockFragt den LockStatus der SCManager-Datenbank ab.
Aufrufbeispiele
sc query               —  Listet den Status aktiver Dienste und Treiber
sc query messenger     —  Zeigt den Status des Messengerddienstes
sc queryex messenger   —  Zeigt den erweiterten Status des Messengerdienstes
sc query type= driver  —  Listet nur aktive Treiber
sc query type= service —  Listet nur Win32-Treiber
sc query state= all    —  Listet alle Dienste und Treiber
sc query bufsize= 50   —  Listet mit einem 50 Bytepuffer auf
sc query ri= 14        —  Listet mit Index zum Fortsetzen = 14
sc queryex group= \"\" —  Listet aktive Dienste die nicht einer Gruppe angehören

sc query type= service type=interact — Listet alle interaktiven Dienste
sc query type= driver group= ndis    — Listet alle NDIS-Treiber
Der Parameter type= muss in einigen Fällen zweimal angegeben werden. Mit dem ersten Eintrag type= parameter wird die Art des Services (services, drivers, all) ausgewählt. Der zweite Eintrag von type= parameter gibt eine weitere Auswahl an.

Der Zwischenraum hinter dem Gleichheitszeichen ist erforderlich!

Anwendungsbeispiel

Das Beispiel bezieht sich auf eine ältere Version des Virenschutzprogrammes „Antivir”.

Virenschutzprogramme sollten häufig aktualisiert werden. Bei dem für Privatanwender als Freeware erhältlichen Virenschutzprogramm „Antivir” ist ein Update nur möglich, wenn auch der zum Lieferumfang gehörige sogenannte Scheduler als Service läuft.

Da ich den Scheduler nicht benötige, habe ich seinen Start in der Systemsteuerung von „automatisch” auf „manuell” umgestellt.

Um vor einem Update von Antivir nicht per Maus in der Systemsteuerung herumstochern zu müssen, habe ich eine kleine Batch-Datei geschrieben. Sie zeigt den Status beider Service an und ermöglicht das nachträgliche Starten dieser Service nach Auswahl über Tastatur. Für die Tastaturauswahl wird ein Hilfsprogramm „batc” verwendet. Mit dem verwendeten Parameter „a” funktioniert es so, wie das Programm FRAGE. Der Aufruf „batc w” wartet auf eine Tastatureingabe, bevor die Batch-Datei beendet wird. Dadurch ist es besser möglich, die Batch-Datei unmittelbar von der Windows-Oberfläche aus zu bedienen.

Batch-Datei:

echo off
title AntivirService Starten oder Stoppen
echo jetziger Status des AntiVirServices und des AntiVirSchedulers
sc query AntiVirService
sc query AntiVirScheduler
batc a0=Nichts machen / 1=AntiVir starten / 2=Scheduler starten ?:,012
if errorlevel=3 goto start2
if errorlevel=2 goto start1
echo es soll nichts gemacht werden
goto raus
:start1
sc start AntiVirService
goto raus
:start2
sc start AntiVirScheduler
:raus
batc w

Ablaufbeispiel (es sind bereits beide Services aktiv)

echo off
jetziger Status des AntiVirServices und des AntiVirSchedulers

SERVICE_NAME: AntiVirService
   TYPE       : 10 WIN32_OWN_PROCESS
   STATE      : 4 RUNNING
              (NOT_STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
   WIN32_EXIT_CODE   : 0 (0x0)
   SERVICE_EXIT_CODE : 0 (0x0)
   CHECKPOINT    : 0x0
   WAIT_HINT     : 0x0

SERVICE_NAME: AntiVirScheduler
   TYPE       : 10 WIN32_OWN_PROCESS
   STATE      : 4 RUNNING
              (NOT_STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
   WIN32_EXIT_CODE   : 0 (0x0)
   SERVICE_EXIT_CODE : 0 (0x0)
   CHECKPOINT    : 0x0
   WAIT_HINT     : 0x0
0=Nichts machen / 1=AntiVir starten / 2=Scheduler starten ?:>
es soll nichts gemacht werden
->

Hinweis: Wenn man den Service starten möchte, sollte man als Administrator angemeldet sein. Siehe im folgenden Ablaufbeispiel den Fehlerhinweis!
D:\dos\nu>echo off
jetziger Status des AntiVirServices und des AntiVirSchedulers

SERVICE_NAME: AntiVirService
   TYPE       : 10 WIN32_OWN_PROCESS
   STATE      : 4 RUNNING
              (NOT_STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
   WIN32_EXIT_CODE   : 0 (0x0)
   SERVICE_EXIT_CODE : 0 (0x0)
   CHECKPOINT    : 0x0
   WAIT_HINT     : 0x0

SERVICE_NAME: AntiVirScheduler
   TYPE       : 10 WIN32_OWN_PROCESS
   STATE      : 1 STOPPED
   WIN32_EXIT_CODE  :  1077 (0x435)
   SERVICE_EXIT_CODE : 0 (0x0)
   CHECKPOINT    : 0x0
   WAIT_HINT     : 0x0
0=Nichts machen / 1=AntiVir starten / 2=Scheduler starten ?:>
[SC] StartService: OpenService FEHLER 5:

Zugriff verweigert
->
Letztes Upload: 28.03.2020 um 06:42:34. Dieser Abruf erfolgte am 03.07.2020 um 12:20:30 Uhr.