Services beheren

Er zijn acht kernservice-cmdlets, ontworpen voor een breed scala aan servicetaken. We kijken alleen naar het in een lijst bekijken en wijzigen van de status van de service, maar u kunt een lijst met Service-cmdlets krijgen met behulp van . U vindt informatie over elke Get-Help *-Service service-cmdlet met behulp van , zoals Get-Help <Cmdlet-Name> Get-Help New-Service .

Services verkrijgen

U kunt de services op een lokale of externe computer krijgen met behulp van de Get-Service cmdlet . Net als Get-Process bij retourneert Get-Service u met behulp van de opdracht 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 service is, moet u mogelijk services zoeken op weergavenaam. U kunt dit doen met een specifieke naam, met jokertekens of met behulp van een lijst met weergavenamen:

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

U kunt de ComputerName parameter van de Get-Service cmdlet om de services op externe computers op te halen. De ComputerName parameter accepteert meerdere waarden en jokertekens, zodat u de services op meerdere computers met één opdracht kunt krijgen. Met de volgende opdracht worden bijvoorbeeld de services op de externe computer Server01 opgeslagen.

Get-Service -ComputerName Server01

Vereiste en afhankelijke services verkrijgen

De Get-Service cmdlet heeft twee parameters die zeer nuttig zijn voor servicebeheer. De parameter DependentServices haalt services op die afhankelijk zijn van de service. De Parameter RequiredServices haalt services op waarvan deze service afhankelijk is.

Met deze parameters worden alleen de waarden weergegeven van de eigenschappen DependentServices en ServicesDependedOn (alias=RequiredServices) van het object System.ServiceProcess.ServiceController dat Get-Service retourneert, maar ze vereenvoudigen opdrachten en maken het verkrijgen van deze informatie veel eenvoudiger.

Met de volgende opdracht haalt u de services op die de LanmanWorkstation-service nodig heeft.

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

Met de volgende opdracht haalt u de services op waarvoor de LanmanWorkstation-service is 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...

U kunt zelfs alle services met afhankelijkheden krijgen. De volgende opdracht doet precies dat, en vervolgens wordt de Format-Table cmdlet om weer te geven van de status, naam, RequiredServices en DependentServices eigenschappen van de services op de computer.

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

Services stoppen, starten, tijdelijk stoppen 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. Gebruik het volgende om de afdrukspooler te stoppen:

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 opschorten, gebruikt u:

Suspend-Service -Name spooler

De cmdlet werkt op dezelfde manier als de andere Service-cmdlets, maar we zullen er enkele complexere voorbeelden Restart-Service voor laten zien. In het eenvoudigste gebruik geeft u de naam van de service op:

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 er een herhaalde waarschuwing wordt weergegeven over het opstarten van de afdrukspooler. Wanneer u een servicebewerking die enige tijd duurt, Windows PowerShell u een melding dat de taak nog steeds wordt uitgevoerd.

Als u meerdere services opnieuw wilt opstarten, kunt u een lijst met services krijgen, deze filteren en vervolgens de herstart 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 : 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...

Deze Service-cmdlets hebben geen computernaam parameter, maar u kunt ze uitvoeren op een externe computer met behulp van de Invoke-Command cmdlet. Met de volgende opdracht wordt bijvoorbeeld de Spooler-service opnieuw gestart op de externe computer Server01.

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, te stoppen en te stoppen. De Set-Service cmdlet heeft ook een StartupType-parameter waarmee u het opstarttype van de service kunt wijzigen.

Als u wilt gebruiken op Windows Vista en latere versies van Windows, opent u Windows PowerShell met de Set-Service optie Als administrator uitvoeren.

Zie Set-Service voor meer informatie

Zie ook