PowerShell

Argumenten in scripts

Leerdoelen

  • Maken PowerShell scripts
  • Opstarten van PowerShell scripts
  • Werken met argumenten
  • Hoe we waarden bij argumenten kunnen afdwingen

Maken van een script

  • Open je favoriete editor
    • Notepad.exe
    • Visual Studio Code
  • Open een nieuw tabblad
  • PowerShell scripts hebben de extensie .ps1
  • Sla je document op:
    • Naam: users.ps1
    • Locatie: PowerShell directory

Argumenten

.\users.ps1 -Voornaam "Jan" -Leeftijd 25
  • Met argumenten kan je een script sturen
  • Je zou een beslissing kunnen nemen op basis van de leeftijd
  • Je kan ook een script maken om gebruikers aan te maken

Argumenten in scripts

  • Voeg aan je script toe:
    param (
    	[string]$Voornaam,
    	[int]$Leeftijd
    )
    Write-Host "Hallo $Voornaam, je bent $Leeftijd jaar oud."
  • Wat doet dit?
  • Voer je script uit
  • Wat gebeurt er als je geen argumenten op geeft?

Default waarden

  • Om te voorkomen dat we lege variabelen krijgen kunnen we default waarden opgeven
    param (
    	[string]$Voornaam = "onbekend",
    	[int]$Leeftijd = 0
    )
    Write-Host "Hallo $Voornaam, je bent $Leeftijd jaar oud."
  • Test je script
  • Wat gebeurt er als je geen argumenten op geeft?

Verplichte waarden

  • We kunnen ook vertellen dat een argument verplicht (mandatory) is:
    param (
    	[Parameter(Mandatory=$true)] [string]$Voornaam,
    	[int]$Leeftijd
    )
    Write-Host "Hallo $Voornaam, je bent $Leeftijd jaar oud."
  • Nu is alleen Voornaam verplicht
  • Pas het script aan zodat beide argumenten verplicht zijn.

Verplichte waarden (3)

  • We kunnen ook afdwingen dat alleen bepaalde waarden geldig zijn:
    param (
    	[Parameter(Mandatory=$true)] [string]$Voornaam,
    	[ValidateSet("Users", "Administrators", "Printers")] [string]$Group,
    	[int]$Leeftijd
    )
    Write-Host "Gebruiker met $Voornaam komt in groep $Group en is $Leeftijd jaar oud."
  • Alleen de groepen Users, Administrator en Printers zijn toegestaan voor Group

Samenvatting

  • We hebben gezien hoe we argumenten kunnen verwerken in scripts
  • We hebben gezien hoe we argumenten kunnen afdwingen