Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnek yalnızca Windows PowerShell 5.1 için geçerlidir.
Çok çeşitli hizmet görevleri için tasarlanmış sekiz temel Service 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.
Get-Command *-Service
kullanarak hizmet cmdlet'lerinin listesini alabilirsiniz.
Get-Help <Cmdlet-Name>
kullanarak, Get-Help New-Service
gibi her cmdlet hakkında bilgi bulabilirsiniz.
Hizmet alma
Get-Service
cmdlet'ini kullanarak hizmetleri yerel veya uzak bir bilgisayara alabilirsiniz.
Get-Process
'da olduğu gibi parametresiz Get-Service
komutunun kullanılması tüm hizmetleri döndürür. Yıldız işaretini joker karakteri olarak kullanarak, ada göre filtreleme yapabilirsiniz.
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 adla arama yapabilir, joker karakterler kullanabilir veya görünen adların bir listesini sunabilirsiniz.
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
Uzaktan hizmet alma
Windows PowerShell ile, uzak bilgisayarlardaki hizmetleri almak için Get-Service
cmdlet'in 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 başlayarak, *-Service
cmdlet'lerinde ComputerName parametresi yoktur. PowerShell uzaktan iletişimiyle uzak bilgisayarlarda hizmetlerden yararlanmaya 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 bilgileri 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 Durum, Ad, GerekenHizmetlerve BağımlıHizmetler özelliklerini görüntülemek için Format-Table
cmdlet'i.
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 ad ile belirtilebilir ve değer olarak listeleri ve joker karakterlerini kabul edebilir. Yazdırma biriktiricisini durdurmak için şunu kullanın:
Stop-Service -Name spooler
Yazdırma biriktiricisini durdurulduktan sonra başlatmak için aşağıdakini kullanın:
Start-Service -Name spooler
Yazdırma biriktiricisini askıya almak için şunu kullanın:
Suspend-Service -Name spooler
Restart-Service
cmdlet'i 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ızın farkına varın. 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 bunları Invoke-Command
cmdlet'ini kullanarak 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
Set-Service
cmdlet'i, 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 Set-Service
kullanmak için PowerShell'i yönetici olarak çalıştır seçeneğiyle açın.
Daha fazla bilgi için bkz. Set-Service
Ayrıca bkz.
PowerShell