PipeLine ( | )

De kracht van powershell zit deels in het kunnen gebruiken van de pipeline ( | ). Met deze pipe kan je de uitkomst van een commando doorsluizen naar een ander commando.

Je hebt dit in de vorige topic gezien. Er werd een verzameling (Array) getallen doormiddel van de pipe doorgesluisd naar het commando Foreach-Object

We willen als voorbeeld de Print spooler van de computer stoppen met 1 commando.

Get-Service -Name Spooler | Stop-Service

Met het eerste deel (Get-Service -Name Spooler) wordt de service Spooler geselecteerd. Doormiddel van de pipe (|) wordt deze doorgesluisd naar het volgende commando (Stop-Service)

Moest je een fout krijgen bij het uitvoeren van dit commando, dan wil dit zeggen dat je powershell of Powershell ISE moet worden opgestart als ‘Administrator’. Je hebt anders niet genoeg rechten om dit commando uit te voeren.

Om deze service terug te starten kunnen we door 1 woord te veranderen dit doen

Get-Service -Name Spooler | Start-Service

Wat zou er gebeuren als we geen parameter en value meegeven ?

Get-Service | Stop-Service

Bij dit commando gaat er een poging gedaan worden om alle services te stoppen, maar als we dit gaan uitvoeren gaan we heel wat foutmeldingen krijgen, dit om het systeem te beschermen, we kunnen niet zomaar alle services stoppen. Dit om het systeem te beschermen.

Dus soms wil je eerst wel een weten wat er gaat gebeuren als je een commando gaat uitvoeren. Dit kan je doen in powershell door een bepaalde parameter mee te geven. (-whatif).

Get-Service | Stop-Service -WhatIf

Nu krijg je een hele lijst met wat er zou gebeuren als je dit commado zou uitvoeren.

What if: Performing the operation “Stop-Service” on target “Xbox Live Networking Service (XboxNetApiSvc)”.
What if: Performing the operation “Stop-Service” on target “Xbox Live Game Save (XblGameSave)”.