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.
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: Die Option [Servername] hat das Format „\ServerName”. Diese Option wird nicht verwendet, wenn derjenige PC gemeint ist, auf dem SC ausgeführt wird. |
queryex | Fragt den erweiterten Status eines Dienstes oder zählt den Status für von Diensten auf. |
start | Startet einen Dienst |
pause | Sendet eine PAUSE-Steuerungsanfrage an einen Dienst. |
interrogate | Sendet eine INTERROGATE-Steuerungsanfrage an einen Dienst. |
continue | Sendet eine CONTINUE-Steuerungsanfrage an einen Dienst. |
stop | Sendet 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. |
qc | Fragt die Konfigurationsinformationen eines Dienstes ab. |
qdescription | Fragt die Beschreibung eines Dienstes ab. |
qfailure | Fragt die Aktionen ab, die bei einem Dienstfehler ausgeführt werden sollen. |
qfailureflag | Fragt das Fehleraktionsflag eines Dienstes ab. |
qsidtype | Fragt den SID-Typ eines Dienstes ab. |
qprivs | Fragt die erforderlichen Rechte eines Dienstes ab. |
delete | Löscht einen Dienst (aus der Registrierung). |
create | Erstellt einen Dienst. d.h. trägt ihn in die Registrierung ein). |
control | Sendet eine Steuerung an einen Dienst. |
sdshow | Zeigt die Sicherheitsbeschreibung eines Dienstes an. |
sdset | Legt die Sicherheitsbeschreibung eines Dienstes fest. |
showsid | Zeigt die Dienst-SID an, passend zu einem zufälligen Namen. |
GetDisplayName | Ruft den Displaynamen eines Dienstes ab. |
GetKeyName | Ruft den Servicekeynamen für einen Dienst ab. |
EnumDepend | Listet 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. |
Lock | Sperrt die Dienstdatenbank. |
QueryLock | Fragt 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-TreiberDer 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! |
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 ->
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 ->