Uruchom ponownie usługę Windows z wiersza polecenia

Odpowiedzi:

89

Można użyć net stop [service name], aby zatrzymać go i net start [service name]aby uruchomić go ponownie w zasadzie ponownego uruchomienia usługi.

Aby je połączyć, po prostu zrób to - net stop [service name] && net start [service name].


Istnieje również polecenie zbudowane specjalnie do obsługi wiadomości: sc

OPIS:
        SC to program wiersza poleceń służący do komunikacji z
        Menedżer kontroli usług i usługi.
STOSOWANIE:
        sc [polecenie] [nazwa usługi] ...


        Opcja ma postać „\\ NazwaSerwera”
        Dalszą pomoc dotyczącą poleceń można uzyskać, wpisując: „sc [polecenie]”
        Polecenia:
          zapytanie ----------- Pyta o status usługi lub
                          wylicza status dla rodzajów usług.
          queryex --------- Pyta o status rozszerzony dla usługi lub
                          wylicza status dla rodzajów usług.
          start ----------- Uruchamia usługę.
          pauza ----------- Wysyła żądanie PAUZY do usługi.
          interrogate ----- Wysyła zapytanie sterujące INTERROGATE do usługi.
          kontynuuj -------- Wysyła żądanie sterowania KONTYNUUJ do usługi.
          stop ------------ Wysyła żądanie STOP do usługi.
          config ---------- Zmienia konfigurację usługi (trwała).
          opis ----- Zmienia opis usługi.
          awaria --------- Zmienia działania podejmowane przez usługę w przypadku awarii.
          Failflag ----- Zmienia flagę działań niepowodzenia usługi.
          sidtype --------- Zmienia typ identyfikatora SID usługi.
          privs ----------- Zmienia wymagane uprawnienia usługi.
          manageaccount - Zmienia usługę, aby oznaczyć konto usługi
                          hasło zarządzane przez LSA.
          qc -------------- Pyta o informacje dotyczące konfiguracji usługi.
          qdescription ---- Odpytuje o opis usługi.
          qfailure -------- Sprawdza działania podjęte przez usługę w przypadku awarii.
          qfailureflag ---- Sprawdza flagę działań niepowodzenia usługi.
          qsidtype -------- Sprawdza typ SID usługi dla usługi.
          qprivs ---------- Odpytuje o wymagane uprawnienia usługi.
          qtriggerinfo ---- Sprawdza parametry wyzwalające usługi.
          qpreferrednode - wysyła zapytanie do preferowanego węzła NUMA usługi.
          qrunlevel ------- Sprawdza poziom uruchomienia usługi.
          qmanagedaccount-Queries, czy usługa korzysta z konta z
                          hasło zarządzane przez LSA.
          qprotection ----- Sprawdza poziom ochrony procesu usługi.
          usuń ---------- Usuwa usługę (z rejestru).
          Utwórz ---------- Tworzy usługę. (dodaje go do rejestru).
          kontrola --------- Wysyła kontrolę do usługi.
          sdshow ---------- Wyświetla deskryptor bezpieczeństwa usługi.
          sdset ----------- Ustawia deskryptor bezpieczeństwa usługi.
          showsid --------- Wyświetla ciąg SID usługi odpowiadający dowolnej nazwie.
          triggerinfo ----- Konfiguruje parametry wyzwalania usługi.
          preferowany węzeł --- Ustawia preferowany węzeł NUMA usługi.
          poziom pracy -------- Ustawia poziom uruchamiania usługi.
          GetDisplayName - Pobiera DisplayName dla usługi.
          GetKeyName ------ Pobiera ServiceKeyName dla usługi.
          EnumDepend ------ Wylicza zależności serwisowe.

        Następujące polecenia nie wymagają nazwy usługi:
        sc   
          boot ------------ (ok | bad) Wskazuje, czy powinien wystartować ostatni boot
                          zostać zapisany jako ostatnia znana dobra konfiguracja rozruchowa
          Zablokuj ------------ Blokuje bazę danych usług
          QueryLock ------- Pyta LockStatus o bazę danych SCManager
PRZYKŁAD:
        sc uruchom MyService

QUERY i OPCJE QUERYEX:
        Jeśli po poleceniu zapytania występuje nazwa usługi, status
        za tę usługę jest zwracana. Dalsze opcje nie obowiązują w
        ta sprawa. Jeśli po poleceniu zapytania nie występuje nic lub jedno z nich
        opcje wymienione poniżej, usługi są wyliczone.
    type = Rodzaj usług do wyliczenia (sterownik, usługa, wszystkie)
             (domyślnie = usługa)
    state = stan usług do wyliczenia (nieaktywne, wszystkie)
             (domyślnie = aktywne)
    bufsize = Rozmiar (w bajtach) bufora wyliczania
             (domyślnie = 4096)
    ri = numer indeksu wznowienia, od którego należy rozpocząć wyliczanie
             (domyślnie = 0)
    group = Grupa usług do wyliczenia
             (domyślnie = wszystkie grupy)

PRZYKŁADY SKŁADNI
zapytanie sc - wylicza status aktywnych usług i sterowników
sc dziennik zdarzeń - wyświetla status usługi dziennika zdarzeń
sc queryex dziennik zdarzeń - wyświetla status rozszerzony dla usługi dziennika zdarzeń
sc query type = driver - Wymienia tylko aktywne sterowniki
sc query type = service - Wymienia tylko usługi Win32
stan zapytania sc = wszystkie - wylicza wszystkie usługi i sterowniki
sc query bufsize = 50 - Wylicza z 50-bajtowym buforem
sc zapytanie ri = 14 - Wylicza z indeksem wznowienia = 14
sc queryex group = "" - Wylicza aktywne usługi spoza grupy
sc query type = interact - Zlicza wszystkie usługi interaktywne
sc typ zapytania = grupa sterowników = NDIS - Zlicza wszystkie sterowniki NDIS
paradd0x
źródło
4
Następne pytanie brzmi: jak znaleźć właściwe [service name].
Iszi
3
Wstaw net starti wyświetla listę wszystkich uruchomionych usług.
paradd0x
2
@Iszi Cóż, jeśli chce zrestartować usługę, musi być uruchomiona, aby ją ponownie uruchomić. :)
paradd0x
3
@lszi: uruchom „sc query” z wiersza poleceń. Spójrz na SERVICE_NAME
jftuga
7
„restart! =” stop ”&&„ start ”. Mam usługę, która jest restartowana dość szybko za pośrednictwem apletu GUI, ale bardzo powoli przestaje działać zarówno przez GUI, jak i CLI. Wciąż szukam sposobu CLI na wykonanie prawdziwego restartu ...
Van Jone
14

Należy pamiętać, że jeśli istnieją inne usługi zależne od tej usługi - zwykle net stop & net startich nie restartuje. net stop /yzatrzyma wszystkie zależności

Najczęstszy przykład - SQL Server i SQL Agent.

Polecam polecenie cmdlet programu PowerShell, aby rozwiązać ten problem:

powershell -command "Restart-Service MSSQLSERVER -Force"

Po uruchomieniu MSSQLSERVER - cmdlet uruchamia wszystkie wcześniej zatrzymane zależności.

PS: Upewnij się, że uruchomiłeś polecenie jako administrator

Dmitrij Gusarow
źródło
1
+1. To najlepsza odpowiedź. Zatrzymywanie i uruchamianie usług z zależnościami zakończy się niepowodzeniem w przypadku innych odpowiedzi. Musisz to dodać, aby to działało, musisz działać jako administrator.
egur
10

Możesz także użyć programu PowerShell:

stop-Service
devlife
źródło
16
PowerShell oferuje również usługę Restart-Service (tylko wspominając o tym, ponieważ OP poprosił konkretnie o ponowne uruchomienie usług)
ᴇcʜιᴇ007
10

Aby ponownie uruchomić usługę Windows z wiersza polecenia lub zaplanowanych zadań, użyj:

cmd /c "net stop "Service Name" & sc start "Service Name""
Kiki
źródło
3
Prawdopodobnie chcesz podwójnego znaku handlowego. To sprawia, że ​​musi poczekać, aż pierwsze polecenie zakończy się (pomyślnie), zanim przejdzie do drugiego.
Adam Plocher
4

Aby rozwiązać irytujący Wacom Intuous Driver nie działa Błąd, pojawia się przy każdym ponownym uruchomieniu.

Windows key+ R, wklej, Bam!

sc stop WTabletServicePro && sc start WTabletServicePro
Jerzy
źródło
2

Narzędzie PsService od PsTools udostępnia restartpolecenie dla usług, z dodatkowymi parametrami, aby uruchomić je na innym komputerze.

psservice [-accepteula] [\\Computer [-u Username [-p Password]]] restart <service-name>

-accepteulaFlag oszczędza okno EULA tylko w przypadku jest to po raz pierwszy skorzystać z tego narzędzia z bieżącego użytkownika.

cdlvcdlv
źródło
-2

Jeśli znasz ścieżkę wykonywalną usługi, której możesz użyć

"[service name.exe] console"

W wierszu poleceń.

Pomoże to w debugowaniu problemu, jeśli usługa się nie uruchomi.

sup4eli
źródło
Witamy w Super User! Przeczytaj uważnie pytanie ponownie. Twoja odpowiedź nie odpowiada na pierwotne pytanie.
DavidPostill