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 obiektyServiceController, np. z potokuGet-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 nanet*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.