Providers

Met PowerShell kun je meer dan alleen folders en bestanden van het file system benaderen. Het file system noemen we een provider. Maar er zijn er meer zoals Certificaten en het Windows Register.

Afb. 1 Er zijn meer providers naast het file system

 

Met het commando Get-PSProvider kun je de lijst van providers opvragen. Met het commando Set-Location (of de alias cd = change directory) kun je door de items bladeren alsof het een file system is, bijvoorbeeld: Set-Location HKCU: en daarna Get-ChildItem geeft je de entries in de registerkey HKey Current User.

Afb. 2 Inhoud HKey Current User tonen in PowerShell

 

Als IIS (Internet Information Server) bijvoorbeeld als rol geïnstalleerd staat, kun je die ook op deze manier benaderen en beheren. Om een overzicht te krijgen van alle providers gebruik je het commando: Get-PSProvider.

Providers zijn dus erg handig omdat je ze op eenzelfde manier kunt gebruiken als andere objecten in PowerShell.


Opdracht 1

Voer in PowerShell ISE de volgende commando's uit:

Je krijgt de inhoud van de omgevingsvariabelen te zien. Hier vind je ontzettend veel info die je nodig kunt hebben en ook weer kunt ge bruiken in scripts. Denk bijvoorbeeld aan de computernaam (com putername) en de ingelogde gebruiker (username).

Probeer op eenzelfde manier ook eens de volgende providers uit en
zoek het antwoord op de vragen:


TIP Om weer terug te keren naar PowerShell typ je : C:


Opdracht 2

Typ het onderstaande script over in PS ISE, let goed op dat je geen typfouten maakt en dat elke regel in het script ook op een nieuwe regel in ISE komt te staan. Let op de backtick ( ` ) in regel 2. Met deze backtick koppel je regel 2 aan regel 3 vast. Beide regels mogen dus ook in één regel staan.

New-Item -ItemType directory -Path C:\data1
1..50 | ForEach-Object {New-Item -ItemType File -Path C:\data1 -Name "File $_.txt"}

Uitleg script

Regel 1

Regels 2 en 3

Op dit moment hoef je dit allemaal nog niet te kunnen of toe te pas sen. We beginnen eenvoudig met de volgende opdracht.


Opdracht 3

Schrijf de PowerShell-commando's waarme je: