Restart-Service

Zatrzymuje, a następnie ponownie uruchamia usługę.

Restart-Service to cmdlet PowerShell (moduł Microsoft.PowerShell.Management), który wysyła do Service Controllera Windows najpierw komunikat zatrzymania, a zaraz potem startu wskazanej usługi. W praktyce: zamiast klikać w services.msc i ręcznie robić „Stop”, a potem „Start”, załatwiasz to jednym poleceniem. Przydaje się, gdy usługa zacięła się, przeczytała nową konfigurację dopiero po restarcie albo gdy chcesz przeładować np. spoolera druku czy IIS-a bez restartowania całego serwera. Cmdlet działa wyłącznie na Windowsie.

Składnia i najważniejsze opcje

Podstawowa forma to Restart-Service [-Name] . Nazwę usługi możesz podać jako pierwszy argument, bez jawnego -Name.

  • -Name — nazwa usługi (ta techniczna, np. Spooler), obsługuje znaki wieloznaczne i listę rozdzieloną przecinkami.
  • -DisplayName — wybór po nazwie wyświetlanej (np. „Print Spooler”) zamiast po nazwie systemowej.
  • -InputObject — przyjmuje obiekty ServiceController, np. z potoku Get-Service.
  • -Force — wymusza restart usługi, która ma usługi zależne (bez tego PowerShell odmówi).
  • -PassThru — zwraca obiekt usługi po restarcie; domyślnie cmdlet nie wypisuje nic.
  • -Include — zawęża zestaw usług dopasowanych przez -Name (wzorce dozwolone).
  • -Exclude — pomija wskazane usługi z dopasowania, też ze znakami wieloznacznymi.
  • -WhatIf / -Confirm — podgląd skutków bez wykonania oraz pytanie o potwierdzenie.

Przykłady użycia

  • Restart-Service Spooler — restartuje usługę bufora wydruku po jej nazwie systemowej.
  • Restart-Service -DisplayName "Print Spooler" — to samo, ale po nazwie wyświetlanej.
  • Restart-Service -Name W3SVC -Force — restartuje usługę WWW IIS mimo że ma usługi zależne.
  • Get-Service -Name BITS | Restart-Service -PassThru — pobiera usługę przez potok, restartuje i wypisuje jej stan.
  • Restart-Service -Name "net*" -Exclude "netlogon" -WhatIf — pokazuje, które usługi na net* zostałyby zrestartowane (poza Netlogon), nic nie zmieniając.

Częste błędy i pułapki

Najczęstszy błąd to mylenie nazwy systemowej z wyświetlaną — Restart-Service "Print Spooler" bez -DisplayName nie zadziała, bo nazwa systemowa to Spooler. Druga klasyczna pułapka: usługa z zależnościami nie zatrzyma się bez -Force, a komunikat o błędzie potrafi być mylący. Pamiętaj też, że restart usługi zależnej pociągnie za sobą zatrzymanie tego, co od niej zależy — z -Force potrafisz nieświadomie ubić pół serwera. Do tego niektóre usługi (np. krytyczne dla systemu) odmówią restartu nawet z prawami administratora, a sam cmdlet wymaga uruchomienia konsoli „jako administrator”. Przed akcją na produkcji warto przejechać -WhatIf, żeby nie zrestartować przypadkiem czegoś więcej niż zamierzałeś.

Powiązane komendy: Start-Service, Stop-Service, Get-Service, Set-Service, Suspend-Service, Resume-Service, a w starszym świecie wiersza poleceń net start i net stop.