Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten przykład dotyczy tylko programu Windows PowerShell 5.1.
Istnieje osiem podstawowych poleceń cmdlet Service, które są przeznaczone do szerokiego zakresu zadań związanych z usługą. W tym artykule omówiono tylko wyświetlanie i zmienianie stanu działania dla usług. Listę poleceń cmdlet usługi można uzyskać przy użyciu Get-Command *-Service. Informacje o poszczególnych poleceniach cmdlet można znaleźć przy użyciu Get-Help <Cmdlet-Name>, na przykład Get-Help New-Service.
Pobieranie usług
Usługi można uzyskać na komputerze lokalnym lub zdalnym przy użyciu polecenia cmdlet Get-Service. Podobnie jak w przypadku Get-Process, użycie polecenia Get-Service bez parametrów zwraca wszystkie usługi. Możesz filtrować według nazwy, nawet używając gwiazdki jako symbolu wieloznakowego:
PS> Get-Service -Name se*
Status Name DisplayName
------ ---- -----------
Running seclogon Secondary Logon
Running SENS System Event Notification
Stopped ServiceLayer ServiceLayer
Ponieważ nie zawsze jest oczywiste, jaka jest prawdziwa nazwa usługi, może być konieczne znalezienie usług według nazwy wyświetlanej. Możesz wyszukiwać według określonej nazwy, używać symboli wieloznacznych lub podać listę nazw wyświetlanych:
PS> Get-Service -DisplayName se*
Status Name DisplayName
------ ---- -----------
Running lanmanserver Server
Running SamSs Security Accounts Manager
Running seclogon Secondary Logon
Stopped ServiceLayer ServiceLayer
Running wscsvc Security Center
PS> Get-Service -DisplayName ServiceLayer, Server
Status Name DisplayName
------ ---- -----------
Running lanmanserver Server
Stopped ServiceLayer ServiceLayer
Uzyskiwanie usług zdalnych
Za pomocą programu Windows PowerShell można użyć parametru ComputerName polecenia cmdlet Get-Service, aby uzyskać usługi na komputerach zdalnych. Parametr ComputerName akceptuje wiele wartości i symboli wieloznacznych, dzięki czemu można pobrać usługi na wielu komputerach za pomocą jednego polecenia. Na przykład, użycie następującej komendy pobiera usługi na zdalnym komputerze Server01.
Get-Service -ComputerName Server01
Począwszy od programu PowerShell 6.0, polecenia cmdlet *-Service nie mają parametru ComputerName. Nadal można uzyskiwać dostęp do usług na komputerach zdalnych za pomocą zdalnego zarządzania PowerShell. Na przykład następujące polecenie wyświetla usługi na zdalnym komputerze Server02.
Invoke-Command -ComputerName Server02 -ScriptBlock { Get-Service }
Możesz również zarządzać usługami za pomocą innych poleceń cmdlet *-Service. Aby uzyskać więcej informacji na temat komunikacji zdalnej programu PowerShell, zobacz about_Remote.
Uzyskiwanie wymaganych usług i usług zależnych
Polecenie cmdlet Get-Service ma dwa parametry, które są bardzo przydatne w administrowaniu usługą. Parametr DependentServices pobiera usługi, które zależą od usługi.
Parametr RequiredServices pobiera usługi, na których zależy usługa LanmanWorkstation.
PS> Get-Service -Name LanmanWorkstation -RequiredServices
Status Name DisplayName
------ ---- -----------
Running MRxSmb20 SMB 2.0 MiniRedirector
Running bowser Bowser
Running MRxSmb10 SMB 1.x MiniRedirector
Running NSI Network Store Interface Service
Parametr DependentServices pobiera usługi, które wymagają usługi LanmanWorkstation.
PS> Get-Service -Name LanmanWorkstation -DependentServices
Status Name DisplayName
------ ---- -----------
Running SessionEnv Terminal Services Configuration
Running Netlogon Netlogon
Stopped Browser Computer Browser
Running BITS Background Intelligent Transfer Ser...
Następujące polecenie wyświetla wszystkie usługi, które mają zależności. Polecenie cmdlet Format-Table wyświetla właściwości usług, takie jak stan, nazwa, wymagane usługioraz usługi zależne.
Get-Service -Name * | Where-Object {$_.RequiredServices -or $_.DependentServices} |
Format-Table -Property Status, Name, RequiredServices, DependentServices -Auto
Zatrzymywanie, uruchamianie, zawieszanie i ponowne uruchamianie usług
Wszystkie polecenia cmdlet usługi mają tę samą ogólną postać. Usługi można określić według nazwy ogólnej lub nazwy wyświetlanej i mogą przyjmować listy oraz symbole wieloznaczne jako wartości. Aby zatrzymać bufor wydruku, użyj:
Stop-Service -Name spooler
Aby ponownie uruchomić bufor wydruku po jego zatrzymaniu, użyj:
Start-Service -Name spooler
Aby zawiesić bufor wydruku, użyj:
Suspend-Service -Name spooler
Cmdlet Restart-Service działa w taki sam sposób jak inne cmdlety Service:
PS> Restart-Service -Name spooler
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
PS>
Zwróć uwagę, że zostanie wyświetlony powtarzany komunikat ostrzegawczy o uruchomieniu buforu wydruku. Gdy wykonujesz operację usługi, która zajmuje trochę czasu, program PowerShell powiadamia o tym, że nadal próbuje wykonać zadanie.
Jeśli chcesz ponownie uruchomić wiele usług, możesz uzyskać listę usług, odfiltrować je, a następnie wykonać ponowne uruchomienie:
PS> Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service
WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping...
WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping...
Restart-Service : can't stop service 'Logical Disk Manager (dmserver)' because
it has dependent services. It can only be stopped if the Force flag is set.
At line:1 char:57
+ Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service <<<<
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
Te cmdlety usługi nie mają parametru ComputerName, ale można je uruchomić na komputerze zdalnym przy użyciu polecenia cmdlet Invoke-Command. Na przykład następujące polecenie uruchamia ponownie usługę buforowania na komputerze zdalnym Server01.
Invoke-Command -ComputerName Server01 {Restart-Service Spooler}
Ustawianie właściwości usługi
Polecenie cmdlet Set-Service zmienia właściwości usługi na komputerze lokalnym lub zdalnym. Ponieważ stan usługi jest właściwością, możesz użyć tego polecenia cmdlet, aby uruchomić, zatrzymać i wstrzymać usługę.
Polecenie cmdlet Set-Service ma również parametr StartupType, który umożliwia zmianę typu uruchamiania usługi.
Aby użyć Set-Service w systemie Windows Vista i nowszych wersjach systemu Windows, otwórz program PowerShell z opcją Uruchom jako administrator.
Aby uzyskać więcej informacji, zobacz Set-Service