Servisleri yönetme

Bu örnek yalnızca Windows PowerShell 5.1 için geçerlidir.

Çok çeşitli hizmet görevleri için tasarlanmış sekiz temel Hizmet cmdlet'i vardır. Bu makalede yalnızca hizmetler için çalıştırma durumunu listeleme ve değiştirme işlemlerine bakılır. kullanarak Get-Command *-Servicehizmet cmdlet'lerinin listesini alabilirsiniz. kullanarak her cmdlet Get-Help <Cmdlet-Name>hakkında bilgi bulabilirsiniz. Örneğin Get-Help New-Service, .

Hizmet alma

Cmdlet'ini kullanarak Get-Service hizmetleri yerel veya uzak bir bilgisayara alabilirsiniz. ile Get-Processolduğu gibi parametresiz komutunun kullanılması Get-Service tüm hizmetleri döndürür. Joker karakter olarak yıldız işareti bile kullanarak ada göre filtreleyebilirsiniz:

PS> Get-Service -Name se*

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

Hizmetin gerçek adının ne olduğu her zaman belirgin olmadığından hizmetleri görünen ada göre bulmanız gerektiğini fark edebilirsiniz. Belirli bir ada göre arama yapabilir, joker karakterler kullanabilir veya görünen adların listesini sağlayabilirsiniz:

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

Uzak hizmetleri alma

Windows PowerShell ile, uzak bilgisayarlardaki hizmetleri almak için cmdlet'in Get-Service ComputerName parametresini kullanabilirsiniz. ComputerName parametresi birden çok değer ve joker karakter kabul eder, böylece hizmetleri tek bir komutla birden çok bilgisayarda alabilirsiniz. Örneğin, aşağıdaki komut Server01 uzak bilgisayarındaki hizmetleri alır.

Get-Service -ComputerName Server01

PowerShell 6.0'dan *-Service başlayarak cmdlet'lerde ComputerName parametresi yoktur. PowerShell uzaktan iletişimiyle uzak bilgisayarlarda hizmet almaya devam edebilirsiniz. Örneğin, aşağıdaki komut Server02 uzak bilgisayarındaki hizmetleri alır.

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

Hizmetleri diğer *-Service cmdlet'lerle de yönetebilirsiniz. PowerShell uzaktan iletişim hakkında daha fazla bilgi için bkz . about_Remote.

Gerekli ve bağımlı hizmetleri alma

Get-Service cmdlet'i, hizmet yönetiminde çok yararlı olan iki parametreye sahiptir. DependentServices parametresi hizmete bağlı hizmetleri alır.

RequiredServices parametresi, LanmanWorkstation hizmetinin bağımlı olduğu hizmetleri alır.

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

DependentServices parametresi, LanmanWorkstation hizmetini gerektiren bir parametre alır.

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

Aşağıdaki komut, bağımlılıkları olan tüm hizmetleri alır. Hizmetlerin Format-Table Status, Name, RequiredServices ve DependentServices özelliklerini görüntülemek için cmdlet.

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

Hizmetleri durdurma, başlatma, askıya alma ve yeniden başlatma

Hizmet cmdlet'lerinin tümü aynı genel forma sahiptir. Hizmetler ortak ad veya görünen adla belirtilebilir ve listeleri ve joker karakterleri değer olarak alabilir. Yazdırma biriktiricisini durdurmak için şunu kullanın:

Stop-Service -Name spooler

Yazdırma biriktiricisi durdurulduktan sonra başlatmak için şunu kullanın:

Start-Service -Name spooler

Yazdırma biriktiricisini askıya almak için şunu kullanın:

Suspend-Service -Name spooler

Restart-Service Cmdlet, diğer Hizmet cmdlet'leriyle aynı şekilde çalışır:

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>

Yazdırma Biriktiricisi'nin başlatılmasıyla ilgili yinelenen bir uyarı iletisi aldığınızdan dikkat edin. Biraz zaman alan bir hizmet işlemi gerçekleştirdiğinizde PowerShell, görevin hala gerçekleştirilmeye çalışıldığını size bildirir.

Birden çok hizmeti yeniden başlatmak istiyorsanız, hizmetlerin listesini alabilir, filtreleyebilir ve ardından yeniden başlatmayı gerçekleştirebilirsiniz:

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

Bu Hizmet cmdlet'lerinin ComputerName parametresi yoktur, ancak cmdlet'ini Invoke-Command kullanarak bunları uzak bir bilgisayarda çalıştırabilirsiniz. Örneğin, aşağıdaki komut Server01 uzak bilgisayarında Biriktirici hizmetini yeniden başlatır.

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

Hizmet özelliklerini ayarlama

Cmdlet, Set-Service yerel veya uzak bilgisayardaki bir hizmetin özelliklerini değiştirir. Hizmet durumu bir özellik olduğundan, bir hizmeti başlatmak, durdurmak ve askıya almak için bu cmdlet'i kullanabilirsiniz. Set-Service cmdlet'i, hizmet başlangıç türünü değiştirmenize olanak tanıyan bir StartupType parametresine de sahiptir.

Windows Vista ve Windows'un sonraki sürümlerinde kullanmak Set-Service için Yönetici olarak çalıştır seçeneğiyle PowerShell'i açın.

Daha fazla bilgi için bkz. Set-Service

Ayrıca bkz.