"net start service" und "sc start". Was ist der Unterschied?

"net start service" und "sc start". Was ist der Unterschied?

Dienste können mit zwei Befehlen in der Eingabeaufforderungsshell gestoppt und gestartet werden.

  1. Net Start Service "irgendein Dienst"
  2. sc starte "einige Dienste"

Was ist der Unterschied zwischen diesen Befehlen?

Antwort1

Unter Windows NT greifen beide Befehle auf denselben Service Manager zu. Der Unterschied liegt hauptsächlich im für den Benutzer sichtbaren Teil:

  • netist älter – und zwar aus der Zeit von MS-DOS und OS/2.

    scerschien erst mit Windows NT(nicht sicher, welche Version).

  • netkann nur Dienste starten, stoppen und anhalten.

    scverfügt über erweiterte Steuerelemente, kann den Status abfragen, Dienste erstellen und löschen, deren Konfiguration und Sicherheit ändern:sc config beep start= demand

  • netfunktioniert nur lokal.

    sckann über das Netzwerk verwendet werden:sc \\snow start rpcapd

  • netakzeptiert Anzeigenamen:net start "Windows Firewall"

    scerfordert immer einen Dienstnamen:sc start SharedAccess

Antwort2

Grawitys Antwort ist sicherlich hilfreich, aber ich fand einen grundlegenden Unterschied zwischen diesen Befehlen, die aufhttp://cbfive.com/command-line-service-management-net-v-sc/. Insbesondere wird auf dieser Seite darauf hingewiesen, dass sich diese beiden Befehle in ihrerzeitliche Koordinierung:„net“ ist synchron und „sc“ ist asynchron.

SC übergibt die Steuerung an den Dienst und kehrt dann zur Eingabeaufforderung zurück. Dies führt normalerweise dazu, dass SC START den Dienst im Status START_PENDING zurückgibt. NET START wartet, bis der gestartete Dienst vollständig gestartet ist, bevor er zurückkehrt-Steuerung in der Eingabeaufforderung.

...

[L]ie SC START,SC STOP wartet nicht, bis der Dienst zum Stillstand kommt und gibt daher für viele Dienststoppvorgänge häufig STOP_PENDING zurück. NET STOP hingegen wartet auf die Beendigung des Dienstes bevor es zur Eingabeaufforderung zurückkehrt.

...

NET und SC haben unterschiedliche Vorstellungen davon, was sie als Erfolgsbedingungen betrachten. Die Frage, die SC stellt, um festzustellen, ob es erfolgreich war, lautet: „Habe ich erfolgreich eine Stoppsteuerung an den Dienst gesendet?“ Wenn ja, unabhängig davon, ob der Dienst gestoppt wurde, habe ich die Erfolgsbedingung erfüllt. NET stellt die Frage: „Hat der Dienst, den ich stoppen wollte, zurückgegeben, dass er erfolgreich gestoppt wurde?“ Wenn ja, hat es die Bedingung erfüllt. Wenn nicht, egal aus welchem ​​Grund, hat NET die Erfolgsbedingung nicht erfüllt.

Antwort3

Ich habe festgestellt, dass sc start/stop zuverlässiger ist als net start/stop. Manchmal führte net start/stop dazu, dass der Dienst in einem Start-/Stopzustand hängen blieb, während mir das mit sc start/stop noch nie passiert ist. Das Symptom net start/stop tritt tendenziell häufiger auf, wenn der Dienst beendet wurde (über Taskkill), z. B. beim Versuch, den Dienst nach Taskkill mit net start zu starten.

Antwort4

Bleibt noch zu sagen, dass, wenn die OnStart()-Routine eines Dienstes zu lange dauert, NET STARTein Stoppbefehl an den Dienst gesendet und der folgende Fehler zurückgegeben wird:

Der ServiceName-Dienst wird gestartet........

Der ServiceName-Dienst konnte nicht gestartet werden.

Der Dienst hat keinen Fehler gemeldet.

Weitere Hilfe erhalten Sie, indem Sie NET HELPMSG 3534 eingeben.

Dies passiert, obwohl der Dienst erfolgreich gestartet und gestoppt wurde !!

Ich habe auch diesen Beitrag hier gefunden, der könnte interessant sein: Der Dienst konnte nicht gestartet werden

verwandte Informationen