Erstellung eines Windows-Dienstes mit "Sc.exe"

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 251192 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D251192
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
251192 How to create a Windows service by using Sc.exe
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Sie können das SC-Tool (Sc.exe), das im Resource Kit enthalten ist, zur Remote-Erstellung und zum Remote-Start eines Dienstes aus der Befehlszeile verwenden.

Sie können zwar auch die Tools "Netsvc.exe" und "Instsrv.exe" dazu verwenden, einen Dienst auf einem Remotecomputer zu starten, mit diesen Tools ist die Remote-Erstellung eines Dienstes jedoch nicht möglich.

Hinweis: Das Tool "Srvinstw.exe" mit grafischer Benutzeroberfläche wird zur Erstellung von Remotediensten verwendet. "Srvinstw.exe" ist kein Befehlszeilenprogramm.

Weitere Informationen

Sie können "Sc.exe" bei der Entwicklung von Diensten für Windows verwenden. Das im Resource Kit enthaltene Tool "Sc.exe" implementiert Aufrufe an alle Windows-API-Funktionen zur Dienststeuerung (API = Application Programming Interface). Sie können die Parameter für diese Funktionen durch entsprechende Angaben in der Befehlszeile setzen. "Sc.exe" zeigt auch den Dienststatus an und ermittelt die Werte, die in den Statusstrukturfeldern gespeichert sind. Das Tool ermöglicht es Ihnen außerdem, den Namen eines Remotecomputers anzugeben, d. h. Sie können die Dienst-API-Funktionen aufrufen oder die Dienststatusstrukturen auf dem Remotecomputer anzeigen.

Mit "Sc.exe" können Sie außerdem beliebige API-Funktionen zur Dienststeuerung aufrufen und alle Parameter von der Befehlszeile aus ändern. Der Vorteil besteht darin, dass so die Dienstinformationen in der Registrierung und der Datenbank des Dienststeuerungs-Managers bequem erstellt und konfiguriert werden können. Sie müssen den Dienst nicht konfigurieren, indem Sie manuell Einträge in der Registrierung ändern und den Computer dann neu starten, um den Dienststeuerungs-Manager zur Aktualisierung seiner Datenbank zu zwingen.

"Sc.exe" verwendet die folgende Syntax:

Syntax1 (verwenden Sie Syntax1 zum Ausführen von "Sc.exe")
sc [Servername] Command Servicename [Optionname= Optionvalue...]
Syntax2 (Verwenden Sie Syntax2 zur Anzeige von Hilfeinformationen, außer für den Befehl query)
sc [Command]

Parameter

  • Servername
    Optional. Gibt den Namen des Servers an, wenn Sie die Befehle auf einem Remotecomputer ausführen möchten. Der Name muss mit zwei umgekehrten Schrägstrichen (\) anfangen, z. B. \\myserver). Geben Sie diesen Parameter nicht an, wenn Sie "Sc.exe" auf dem lokalen Computer ausführen.
  • Command
    Legt den Befehl sc fest. Beachten Sie, dass viele der sc-Befehle Administratorrechte auf dem angegebenen Computer voraussetzen. "Sc.exe" unterstützt die folgenden Befehle:
    Config
    Ändert die Konfiguration eines Dienstes (permanent).

    Continue
    Sendet eine Continue-Steuerungsanforderung (Fortsetzen) an einen Dienst.

    Control
    Sendet einen Steuerungsbefehl an einen Dienst.

    Create
    Erstellt einen Dienst (fügt ihn in der Registrierung hinzu).

    Delete
    Löscht einen Dienst (aus der Registrierung).

    EnumDepend
    Listet Dienstabhängigkeiten auf.

    GetDisplayName
    Ruft den Anzeigenamen für einen Dienst ab.

    GetKeyName
    Ruft den Dienstschlüsselnamen für einen Dienst ab.

    Interrogate
    Sendet eine Interrogate-Steuerungsanforderung (Abfragen) an einen Dienst.

    Pause
    Sendet eine Pause-Steuerungsanforderung (Anhalten) an einen Dienst.

    qc
    Fragt die Konfiguration für den Dienst ab. Weitere Informationen finden Sie in den Referenzinformationen unter "SC QC".

    Query
    Fragt den Status eines Dienstes ab oder listet den Status der Diensttypen auf. Weitere Informationen finden Sie in den Referenzinformationen unter "SC QUERY".

    Start
    Startet einen Dienst.

    Stop
    Sendet eine Stop-Anforderung an einen Dienst.
  • Servicename
    Gibt den Namen des Dienstschlüssels in der Registrierung an. Beachten Sie, dass dieser von dem Anzeigenamen abweicht, den Sie über net start und die Option Dienste in der Systemsteuerung sehen. "Sc.exe" verwendet den Dienstschlüsselnamen als primäre Kennung für den Dienst.
  • Optionname
    Über die Parameter "Optionname" und "Optionvalue" können Sie Namen und Werte für optionale Befehlsparameter angeben. Beachten Sie, dass zwischen dem Parameter "Optionname" und dem Gleichheitszeichen kein Leerzeichen steht. Sie können keinen, einen oder mehrere Namen-/Wertepaare für optionale Parameter angeben.
  • Optionvalue
    Gibt den Wert für den durch "Optionname" bezeichneten Parameter an. Der Bereich der zulässigen Werte ist häufig pro Optionname-Parameter eingeschränkt. Eine Liste der verfügbaren Werte erhalten Sie über die Hilfeinformationen zu den einzelnen Befehlen.
Viele der Befehle erfordern Administratorberechtigungen. Stellen Sie sicher, dass Sie Administrator für den Computer sind, auf dem die Entwicklungsaufgaben durchgeführt werden.

Der Befehl sc create erzeugt einen Eintrag für den Dienst in der Registrierung und in der Datenbank des Dienststeuerungs-Managers.

Syntax
sc [Servername] create Servicename [Optionname= Optionvalue...

Parameter

  • Servername
    Optional. Gibt den Namen des Servers an, wenn Sie die Befehle auf einem Remotecomputer ausführen möchten. Der Name muss mit zwei umgekehrten Schrägstrichen (\) anfangen, z. B. \\myserver). Geben Sie diesen Parameter nicht an, wenn Sie "Sc.exe" auf dem lokalen Computer ausführen.
  • Servicename
    Gibt den Namen des Dienstschlüssels in der Registrierung an. Beachten Sie, dass dieser von dem Anzeigenamen abweicht, den Sie über net start und die Option "Dienste" in der Systemsteuerung sehen. "Sc.exe" verwendet den Dienstschlüsselnamen als primäre Kennung für den Dienst.
  • Optionname
    Über die Parameter "Optionname" und "Optionvalue" können Sie Namen und Werte für optionale Parameter angeben. Beachten Sie, dass zwischen dem Parameter "Optionname" und dem Gleichheitszeichen kein Leerzeichen steht. Sie können keinen, einen oder mehrere Namen-/Wertepaare für optionale Parameter angeben. Der Befehl sc query unterstützt die folgenden Werte: OptionnameOptionvalue
    type=own, share, interact, kernel, filesys
    Typ des zu erstellenden Dienstes. Zu den möglichen Werten gehören von Treibern verwendete Typen.
    (Standard = share)

    start=boot, system, auto, demand, disabled
    Starttyp für den Dienst. Zu den möglichen Werten gehören von Treibern verwendete Typen.
    (Standard = demand)

    error=normal, severe, critical, ignore
    Schweregrad des Fehlers, wenn der Dienst beim Booten nicht gestartet wird.
    (Standard = normal)

    binPath=(string)
    Pfadname zur Binärdatei des Dienstes. Es gibt keinen Standardwert für diesen Parameter. Diese Zeichenfolge muss angegeben werden.

    group=(string)
    Name der Gruppe, deren Mitglied der betreffende Dienst ist. Die Liste der Gruppen ist in der Registrierung unter "ServiceGroupOrder" gespeichert.
    (Standard = nichts)

    tag=(string)
    Wenn diese Zeichenfolge auf "yes" gesetzt ist, erhält "Sc.exe" eine Tag-ID vom CreateService-Aufruf. "Sc.exe" zeigt den Tag jedoch nicht an.
    (Standard = nichts)

    depend=(durch Leerzeichen getrennte Zeichenfolge)
    Namen von Diensten oder Gruppen, die vor diesem Dienst gestartet werden müssen.

    obj=(Zeichenfolge)
    Name des Kontos, unter dem der Dienst läuft. Für Treiber ist dies der Windows-Treiberobjektname.
    (Standard = LocalSystem)

    DisplayName=(Zeichenfolge)
    Zeichenfolge, die von Benutzeroberflächenprogrammen zur Identifizierung des Dienstes genutzt werden kann.

    password=(Zeichenfolge)
    Kennwortzeichenfolge. Erforderlich, wenn ein anderes Konto als "LocalSystem" verwendet wird.
Optionvalue
Gibt den Wert für den durch "Optionname" bezeichneten Parameter an. Eine Liste der unterstützten Werte finden Sie in den Referenzinformationen zu "Optionname". Bei Eingabe einer Zeichenfolge bedeutet die Verwendung von leeren Anführungszeichen, dass eine leere Zeichenfolge übergeben wird. Beachten Sie das Leerzeichen zwischen OptionValue und dem Gleichheitszeichen.

Hinweis: Der Befehl sc create führt die Operationen der API-Funktion "CreateService" durch.

Das folgende Beispiel erzeugt einen Registrierungseintrag für den Dienst namens "NewService" auf dem Computer namens \\Remotecomputer:
sc \\remotecomputer create newservice binpath= c:\nt\system32\newserv.exe
Hinweis: In Windows 2000, Windows XP, Windows Server 2003, Windows Vista und Windows Server 2008 ist der Wert für "binpath" unter "C:\Windows\System32\Newserv.exe" gespeichert.

Dieser Dienst wird standardmäßig als WIN32_SHARE_PROCESS mit dem Starttyp SERVICE_DEMAND_START erstellt. Er hat keine Abhängigkeiten und wird im LocalSystem-Sicherheitskontext ausgeführt.

Das folgende Beispiel erzeugt den Dienst auf dem lokalen Computer als automatisch startenden Dienst, der in einem eigenen Prozess ausgeführt wird. Er hat Abhängigkeiten von der TDI-Gruppe und vom NetBIOS-Dienst. Beachten Sie, dass Sie die Liste der durch Leerzeichen voneinander getrennten Abhängigkeiten in Anführungszeichen einschließen müssen.
sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "+tdi netbios"
Hinweis: In Windows 2000, Windows XP, Windows Server 2003, Windows Vista und Windows Server 2008 ist der Wert für "binpath" unter "C:\Windows\System32\Newserv.exe" gespeichert.

Weitere Informationen zu dem Tool "Sc.exe" finden Sie im Dokument "Sc-dev.txt" im Resource Kit. Dieses Dokument enthält eine detailliertere Beschreibung von "Sc.exe".

Eigenschaften

Artikel-ID: 251192 - Geändert am: Dienstag, 20. Mai 2008 - Version: 4.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Server 4.0, Terminal Server Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Windows Vista Home Basic
  • Windows Vista Home Basic N
  • Windows Vista Home Basic N 64-bit Edition
  • Windows Vista Business
  • Windows Vista Business 64-bit edition
  • Windows Vista Business N
  • Windows Vista Business N 64-bit Edition
  • Windows Vista Home Premium
  • Windows Vista Home Basic 64-bit edition
  • Windows Vista Home Premium 64-bit edition
  • Windows Vista Ultimate
  • Windows Vista Ultimate 64-bit edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
Keywords: 
kbhowto kbexpertiseinter kbinfo KB251192
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com