Mengelola layanan

Sampel ini hanya berlaku untuk Windows PowerShell 5.1.

Ada delapan cmdlet Layanan inti, yang dirancang untuk berbagai tugas layanan . Artikel ini hanya melihat daftar dan mengubah status berjalan untuk layanan. Anda bisa mendapatkan daftar cmdlet layanan menggunakan Get-Command *-Service. Anda dapat menemukan informasi tentang setiap cmdlet dengan menggunakan Get-Help <Cmdlet-Name>, seperti Get-Help New-Service.

Mendapatkan layanan

Anda bisa mendapatkan layanan di komputer lokal atau jarak jauh dengan menggunakan Get-Service cmdlet. Get-ProcessSeperti halnya Get-Service , menggunakan perintah tanpa parameter mengembalikan semua layanan. Anda dapat memfilter berdasarkan nama, bahkan menggunakan tanda bintang sebagai kartubebas:

PS> Get-Service -Name se*

Status   Name               DisplayName
------   ----               -----------
Running  seclogon           Secondary Logon
Running  SENS               System Event Notification
Stopped  ServiceLayer       ServiceLayer

Karena tidak selalu terlihat apa nama asli untuk layanan tersebut, Anda mungkin menemukan bahwa Anda perlu menemukan layanan berdasarkan nama tampilan. Anda dapat mencari berdasarkan nama tertentu, menggunakan kartubebas, atau memberikan daftar nama tampilan:

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

Mendapatkan layanan jarak jauh

Dengan Windows PowerShell, Anda dapat menggunakan parameter ComputerName cmdlet Get-Service untuk mendapatkan layanan di komputer jarak jauh. Parameter ComputerName menerima beberapa nilai dan karakter kartubebas, sehingga Anda bisa mendapatkan layanan di beberapa komputer dengan satu perintah. Misalnya, perintah berikut mendapatkan layanan di komputer jarak jauh Server01.

Get-Service -ComputerName Server01

Dimulai di PowerShell 6.0, *-Service cmdlet tidak memiliki parameter ComputerName . Anda masih bisa mendapatkan layanan di komputer jarak jauh dengan jarak jauh PowerShell. Misalnya, perintah berikut mendapatkan layanan di komputer jarak jauh Server02.

Invoke-Command -ComputerName Server02 -ScriptBlock { Get-Service }

Anda juga dapat mengelola layanan dengan cmdlet lainnya *-Service . Untuk informasi selengkapnya tentang jarak jauh PowerShell, lihat about_Remote.

Mendapatkan layanan yang diperlukan dan dependen

Cmdlet Get-Service memiliki dua parameter yang sangat berguna dalam administrasi layanan. Parameter DependentServices mendapatkan layanan yang bergantung pada layanan.

Parameter RequiredServices mendapatkan layanan di mana layanan LanmanWorkstation bergantung.

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

Parameter DependentServices mendapatkan yang memerlukan layanan 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...

Perintah berikut mendapatkan semua layanan yang memiliki dependensi. Format-Table Cmdlet untuk menampilkan properti Status, Nama, RequiredServices, dan DependentServices layanan.

Get-Service -Name * | Where-Object {$_.RequiredServices -or $_.DependentServices} |
  Format-Table -Property Status, Name, RequiredServices, DependentServices -auto

Menghentikan, memulai, menangguhkan, dan memulai ulang layanan

Cmdlet Layanan semuanya memiliki bentuk umum yang sama. Layanan dapat ditentukan dengan nama umum atau nama tampilan, dan mengambil daftar dan kartubebas sebagai nilai. Untuk menghentikan penampung cetak, gunakan:

Stop-Service -Name spooler

Untuk memulai penampung cetak setelah dihentikan, gunakan:

Start-Service -Name spooler

Untuk menangguhkan penampung cetak, gunakan:

Suspend-Service -Name spooler

Restart-Service Cmdlet bekerja dengan cara yang sama seperti cmdlet Layanan lainnya:

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>

Perhatikan bahwa Anda mendapatkan pesan peringatan berulang tentang mulainya Print Spooler. Saat Anda melakukan operasi layanan yang membutuhkan waktu, PowerShell memberi tahu Anda bahwa powerShell masih mencoba melakukan tugas tersebut.

Jika Anda ingin memulai ulang beberapa layanan, Anda bisa mendapatkan daftar layanan, memfilternya, lalu melakukan mulai ulang:

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...

Cmdlet Layanan ini tidak memiliki parameter ComputerName , tetapi Anda dapat menjalankannya di komputer jarak jauh dengan menggunakan Invoke-Command cmdlet . Misalnya, perintah berikut memulai ulang layanan Spooler pada komputer jarak jauh Server01.

Invoke-Command -ComputerName Server01 {Restart-Service Spooler}

Mengatur properti layanan

Set-Service Cmdlet mengubah properti layanan pada komputer lokal atau jarak jauh. Karena status layanan adalah properti, Anda dapat menggunakan cmdlet ini untuk memulai, menghentikan, dan menangguhkan layanan. Cmdlet Set-Service juga memiliki parameter StartupType yang memungkinkan Anda mengubah jenis startup layanan.

Untuk menggunakan Set-Service Windows Vista dan versi Windows yang lebih baru, buka PowerShell dengan opsi Jalankan sebagai administrator .

Untuk informasi selengkapnya, lihat Set-Service

Lihat juga