Services beheren

Dit voorbeeld is alleen van toepassing op Windows PowerShell 5.1.

Er zijn acht kernservice-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 Get-Service cmdlet. Net als bij Get-Processhet gebruik van de Get-Service opdracht zonder parameters worden alle services geretourneerd. 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 service is, vindt u mogelijk dat u services zoekt op weergavenaam. 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

Externe services verkrijgen

Met Windows PowerShell kunt u de parameter ComputerName van de Get-Service cmdlet 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 ophaalt.

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 bijvoorbeeld op de externe server02-computer ophaalt.

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

U kunt ook services beheren met de andere *-Service cmdlets. Zie about_Remote voor meer informatie over externe communicatie met PowerShell.

Vereiste en afhankelijke services verkrijgen

De Cmdlet Get-Service 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 die de LanmanWorkstation-service vereist.

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 de volgende opdracht worden alle services opgehaald die afhankelijkheden hebben. De Format-Table cmdlet om de eigenschappen Status, Name, RequiredServices en DependentServices 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 computernaamparameter , 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 windows Vista en latere versies van Windows wilt gebruiken Set-Service , opent u PowerShell met de optie Als administrator uitvoeren .

Zie Set-Service voor meer informatie

Zie ook