Hizmetleri Yönetme

Çok çeşitli hizmet görevleri için tasarlanmış sekiz temel Hizmet cmdlet'i vardır. Yalnızca hizmetler için çalışma durumunu listelemeye ve değiştirmeye bakacağız, ancak kullanarak Hizmet cmdlet'lerinin listesini edinebilirsiniz ve gibi kullanarak her Bir Hizmet cmdlet'i hakkında bilgi Get-Help *-Service Get-Help <Cmdlet-Name> Get-Help New-Service bulabilirsiniz.

Hizmetleri Alma

Cmdlet'ini kullanarak hizmetleri yerel veya uzak bir Get-Service bilgisayarda edinebilirsiniz. ile olduğu Get-Process gibi, Get-Service parametresiz komutunun kullanımı tüm hizmetleri döndürür. Joker karakter olarak yıldız işareti bile kullanarak ad ile filtre kullanabilirsiniz:

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ığı için hizmetleri görünen adla bulmanız gerekir. Bunu belirli bir adla, joker karakter kullanarak veya görünen ad listesi kullanarak kullanabilirsiniz:

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 bilgisayarlardaki hizmetleri almak için Get-Service cmdlet'inin ComputerName parametresini kullanabilirsiniz. ComputerName parametresi birden çok değer ve joker karakter kabul eder, bu nedenle hizmetleri tek bir komutla birden çok bilgisayara edinebilirsiniz. Örneğin, aşağıdaki komut Server01 uzak bilgisayarına hizmetleri alır.

Get-Service -ComputerName Server01

Gerekli ve Bağımlı Hizmetleri Alma

Bu Get-Service cmdlet'i, hizmet yönetiminde çok yararlı olan iki parametreye sahip. DependentServices parametresi hizmete bağlı hizmetleri alır. RequiredServices parametresi, bu hizmetin bağlı olduğu hizmetleri alır.

Bu parametreler yalnızca Get-Service tarafından döndüren System.ServiceProcess.ServiceController nesnesinin DependentServices ve ServicesDependedOn (alias=RequiredServices) özelliklerinin değerlerini görüntüler, ancak komutları basitleştirir ve bu bilgileri çok daha basitleştirir.

Aşağıdaki komut, LanmanWorkstation hizmetinin gerektirdiği 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

Aşağıdaki komut, LanmanWorkstation hizmetini gerektiren hizmetleri 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...

Hatta bağımlılıkları olan tüm hizmetleri bile eldeabilirsiniz. Aşağıdaki komut tam olarak bunu yapar ve ardından Format-Table, Ad, RequiredServices ve DependentServices özelliklerini görüntülemek için Format-Table cmdlet'ini kullanır.

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'leri aynı genel biçime sahip. Hizmetler ortak ad veya görünen ad ile belirtilebilir ve listeler ile joker karakterleri değer olarak alır. Yazdırma biriktiriciyi durdurmak için şunları kullanın:

Stop-Service -Name spooler

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

Start-Service -Name spooler

Yazdırma biriktiriciyi askıya almak için şunları kullanın:

Suspend-Service -Name spooler

cmdlet'i diğer Hizmet cmdlet'leri ile aynı şekilde çalışır, ancak bunun Restart-Service için bazı daha karmaşık örnekler göstereceğiz. En basit kullanımda hizmetin adını belirtirsiniz:

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ılmış olduğu hakkında yinelenen bir uyarı iletisi alasınız. Biraz zaman alan bir hizmet işlemi gerçekleştirerek Windows PowerShell, görevi gerçekleştirmeye çalışsa da bunu size bildirecek.

Birden çok hizmeti yeniden başlatmak için hizmetlerin bir listesini elde etmek, bunları filtrelemek ve ardından yeniden başlatmayı gerçekleştirmek için:

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 : Cannot 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'leri bir ComputerName parametresine sahip değildir, ancak cmdlet'ini kullanarak uzak bir bilgisayarda Invoke-Command çalıştırabilirsiniz. Örneğin, aşağıdaki komut Server01 uzak bilgisayarda Biriktirici hizmetini yeniden başlatıyor.

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

Hizmet Özelliklerini Ayarlama

Set-Servicecmdlet'i, yerel veya uzak bir bilgisayarda 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. Bu Set-Service cmdlet'inin hizmet başlatma türünü değiştirmenizi sağlayan bir StartupType parametresi de vardır.

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

Daha fazla bilgi için bkz. Set-Service

Ayrıca Bkz.