3 De Pipeline

De kracht van PowerShell zit deels in het kunnen gebruiken van het pipe-teken ( | ). Met dit pipe-teken kun je de uitkomst van een commando doorgeven aan een volgend commando. Je hebt dat ook in het vorige hoofdstuk gezien. Daar werd een verzameling (array) getallen door middel van het pipe-teken doorgegeven (gevoerd) aan het commando ForEach-Object.

Voorbeeld: de print spooler van de server moet gestopt worden. Dat kunnen we met PowerShell als volgt oplossen.

Get-Service Name Spooler | Stop-Service

Het het eerste deel (Get-Service -Name Spooler) wordt de service Spooler geselecteerd. Deze wordt vervolgens door middel van het pipe-teken ( | ) doorgegeven aan het volgende deel, namelijk het stoppen van de service.

Een controle leert ons dat de spooler service inderdaad gestopt is. Met Start-Service kun je de service uiteraard weer starten.

Afb. 1 De Spooler-service is gestopt

 

Wat zou er gebeuren als er geen parameter -Name en een value (waar de) opgegeven wordt? Juist, er wordt een poging gedaan om alle services te stoppen. Uiteindelijk krijg je een bulk aan foutmeldingen omdat dit uiteraard niet zomaar kan.

Ongetwijfeld zullen er situaties zijn waarin je eerst graag wilt weten wat er gebeurt als je een bepaald commando uitvoert. In die situaties kun je de paramater -What If gebruiken.

Afb. 2 Met de parameter -whatif kun je eerst zien wat er gebeurt

 

Een andere mogelijkheid is om de parameter -Confirm te gebruiken. In PowerShell ISE krijg je dan een pop-upvenster waarmee je per item (in dit voorbeeld per service) kunt aangeven of je dit item inderdaad wilt stoppen.

Afb. 3 Om bevestiging vragen met de parameter -Confirm