Dienste können mit zwei Befehlen in der Eingabeaufforderungsshell gestoppt und gestartet werden.
- net start service "etwas service"
- sc start "etwas service"
Was ist der Unterschied zwischen diesen Befehlen?
quelle
Dienste können mit zwei Befehlen in der Eingabeaufforderungsshell gestoppt und gestartet werden.
Was ist der Unterschied zwischen diesen Befehlen?
In Windows NT greifen beide Befehle auf denselben Service Manager zu. Der Unterschied liegt hauptsächlich im vom Benutzer sichtbaren Teil:
net
ist älter - aus der Zeit von MS-DOS und OS / 2.
sc
erschien nur mit Windows NT (nicht sicher, welche Version) .
net
kann nur Dienste starten, stoppen und anhalten.
sc
hat erweiterte Steuerelemente, kann den Status abfragen, Dienste erstellen und löschen, deren Konfiguration und Sicherheit ändern: sc config beep start= demand
net
funktioniert nur lokal.
sc
kann über das Netzwerk verwendet werden: sc \\snow start rpcapd
net
akzeptiert Anzeigenamen: net start "Windows Firewall"
sc
Benötigt immer einen Dienstnamen: sc start SharedAccess
Die Antwort von Grawity ist sicherlich hilfreich, aber ich habe einen grundlegenden Unterschied zwischen diesen Befehlen festgestellt, der unter http://cbfive.com/command-line-service-management-net-v-sc/ beschrieben wird . Auf dieser Seite wird insbesondere darauf hingewiesen, dass sich diese beiden Befehle in ihrem Timing unterscheiden : "net" ist synchron und "sc" ist asynchron.
SC sendet 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 Dienst vollständig gestartet ist, bevor er an der Eingabeaufforderung die Steuerung zurückgibt .
...
[L] wie SC START wartet SC STOP nicht auf das Stoppen des Dienstes und gibt dort für viele Dienststoppvorgänge häufig STOP_PENDING zurück. NET STOP hingegen wartet darauf, dass der Dienst beendet wird, bevor er 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 dies der Fall ist, habe ich unabhängig davon, ob der Dienst gestoppt wurde, die erfolgreiche Bedingung erfüllt. NET stellt die Frage: "Hat der Dienst, den ich zu beenden versucht habe, die erfolgreiche Beendigung gemeldet?" Wenn dies der Fall ist, hat er die Bedingung erfüllt. Wenn dies nicht der Fall ist, hat NET die erfolgreiche Bedingung nicht erfüllt
Ich habe festgestellt, dass sc start / stop zuverlässiger ist als net start / stop. Manchmal verursachte ein Netto-Start / Stopp, dass der Dienst in einem Start- / Stopp-Zustand steckte, während mir dies mit sc start / stop noch nie in den Sinn kam. Das Netto-Start / Stopp-Symptom tritt in der Regel häufiger auf, wenn der Dienst beendet wurde (über Taskkill), z.
quelle
Wenn die OnStart () -Routine eines Dienstes zu lange dauert, wird
NET START
ein Stoppbefehl an den Dienst gesendet und der folgende Fehler zurückgegeben:Dies geschieht, obwohl der Dienst erfolgreich gestartet und gestoppt wurde !!
Ich habe auch diesen Beitrag hier gefunden, der interessant sein könnte: Der Dienst konnte nicht gestartet werden
quelle