Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit voorbeeld is alleen van toepassing op Windows PowerShell 5.1.
Er zijn acht kern Service cmdlets (ontworpen voor een breed scala aan servicetaken). In dit artikel wordt alleen gekeken naar het weergeven en wijzigen van de actieve status voor services. U kunt een lijst met service-cmdlets ophalen met behulp van Get-Command *-Service. U vindt informatie over elke cmdlet met behulp van Get-Help <Cmdlet-Name>, zoals Get-Help New-Service.
Services verkrijgen
U kunt de services op een lokale of externe computer ophalen met behulp van de cmdlet Get-Service. Net als bij Get-Processretourneert het gebruik van de opdracht Get-Service zonder parameters alle services. U kunt filteren op naam, zelfs met een sterretje als jokerteken:
PS> Get-Service -Name se*
Status Name DisplayName
------ ---- -----------
Running seclogon Secondary Logon
Running SENS System Event Notification
Stopped ServiceLayer ServiceLayer
Omdat het niet altijd duidelijk is wat de echte naam voor de dienst is, kan het nodig zijn om diensten op weergavenaam te zoeken. U kunt zoeken op specifieke naam, jokertekens gebruiken of een lijst met weergavenamen opgeven:
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
Diensten op afstand verkrijgen
Met Windows PowerShell kunt u de parameter ComputerName van de cmdlet Get-Service gebruiken om de services op externe computers op te halen. De parameter ComputerName accepteert meerdere waarden en jokertekens, zodat u de services op meerdere computers met één opdracht kunt ophalen. Met de volgende opdracht worden de services, bijvoorbeeld, op de externe Server01-computer opgehaald.
Get-Service -ComputerName Server01
Vanaf PowerShell 6.0 hebben de *-Service-cmdlets niet de parameter ComputerName. U kunt nog steeds services op externe computers ophalen met externe communicatie via PowerShell. Met de volgende opdracht worden de services op de externe computer Server02 opgehaald.
Invoke-Command -ComputerName Server02 -ScriptBlock { Get-Service }
U kunt ook services beheren met de andere *-Service cmdlets. Bekijk about_Remotevoor meer informatie over PowerShell-remoting.
Vereiste en afhankelijke services verkrijgen
De Get-Service cmdlet heeft twee parameters die zeer nuttig zijn in servicebeheer. De parameter DependentServices haalt services op die afhankelijk zijn van de service.
De parameter RequiredServices haalt services op waarvan de LanmanWorkstation-service afhankelijk is.
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
De parameter DependentServices krijgt de LanmanWorkstation-service nodig.
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...
Met het volgende commando worden alle services opgehaald die afhankelijkheden hebben. De cmdlet Format-Table om de eigenschappen Status, Name, RequiredServicesen DependentServices eigenschappen van de services weer te geven.
Get-Service -Name * | Where-Object {$_.RequiredServices -or $_.DependentServices} |
Format-Table -Property Status, Name, RequiredServices, DependentServices -Auto
Services stoppen, starten, onderbreken en opnieuw starten
De service-cmdlets hebben allemaal dezelfde algemene vorm. Services kunnen worden opgegeven met een algemene naam of weergavenaam en lijsten en jokertekens als waarden gebruiken. Als u de afdrukspooler wilt stoppen, gebruikt u:
Stop-Service -Name spooler
Als u de afdrukspooler wilt starten nadat deze is gestopt, gebruikt u:
Start-Service -Name spooler
Als u de afdrukspooler wilt onderbreken, gebruikt u:
Suspend-Service -Name spooler
De Restart-Service-cmdlet werkt op dezelfde manier als de andere service-cmdlets:
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>
U ziet dat u een herhaald waarschuwingsbericht krijgt over het starten van de Print Spooler. Wanneer u een servicebewerking uitvoert die enige tijd in beslag neemt, wordt in PowerShell aangegeven dat de taak nog steeds wordt uitgevoerd.
Als u meerdere services opnieuw wilt opstarten, kunt u een lijst met services ophalen, deze filteren en vervolgens het opnieuw opstarten uitvoeren:
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...
Deze service-cmdlets hebben geen ComputerName parameter, maar u kunt ze uitvoeren op een externe computer met behulp van de Invoke-Command cmdlet. Met de volgende opdracht wordt de Spooler-service bijvoorbeeld opnieuw opgestart op de externe Server01-computer.
Invoke-Command -ComputerName Server01 {Restart-Service Spooler}
Service-eigenschappen instellen
De Set-Service-cmdlet wijzigt de eigenschappen van een service op een lokale of externe computer. Omdat de servicestatus een eigenschap is, kunt u deze cmdlet gebruiken om een service te starten, stoppen en onderbreken.
De Set-Service-cmdlet heeft ook een StartupType-parameter waarmee u het opstarttype van de service kunt wijzigen.
Als u Set-Service wilt gebruiken in Windows Vista en latere versies van Windows, opent u PowerShell met de optie Als administrator uitvoeren.
Voor meer informatie, zie Set-Service