PowerShell RoC

Snelle voorbeelden, veelgebruikte cmdlets en gerichte zoekknoppen
Gemaakt voor snel referentie

Essentials

Objecten, pipeline en basis-syntaxis
# Pipeline: stuur output naar volgende cmdlet
Get-Process | Where-Object {$_.CPU -gt 100} | Sort-Object CPU -Descending

# Veelgebruikte cmdlets
Get-Help Get-Process
Get-Command -Name *Service*
Get-ChildItem -Path C:\ -Recurse
Get-Content .\file.txt | Select-String 'error'

# Functie voorbeeld
function Greet($name){
  "Hallo, $name"
}

# Variabelen en arrays
$a = 1
$list = 1,2,3
$list | ForEach-Object { $_ * 2 }

Snelle tips

  • Gebruik Get-Help (vergeet Update-Help niet).
  • Cmdlets volgen Werkwoord-Zaaknomen patroon (Get-Process, Set-Item).
  • Gebruik Where-Object en ForEach-Object voor pipeline-manipulatie.

Veelgebruikte cmdlets (kort)

Get-Help, Get-Command, Get-ChildItem, Get-Content, Set-Content, Add-Content,
Get-Process, Stop-Process, Get-Service, Start-Service, Stop-Service,
Get-EventLog, Get-Event, Get-WmiObject / Get-CimInstance,
Import-Module, Install-Module, Connect-* (Graph/Exchange/Teams modules)

Voorbeeld: bestanden zoeken en rapport maken

Get-ChildItem -Path C:\Logs -Recurse -Filter *.log |
  Select-Object FullName, Length, LastWriteTime |
  Export-Csv -Path C:\temp\log-report.csv -NoTypeInformation

Active Directory PowerShell

Cmdlets voor beheer van gebruikers, groepen, computers en OU's

Basis-cmdlets

# Gebruiker zoeken
Get-ADUser -Identity jansenp
Get-ADUser -Filter "Name -like '*Piet*'" | Select Name, SamAccountName, Enabled

# Nieuwe gebruiker aanmaken
New-ADUser -Name "Test Gebruiker" -SamAccountName tgebruiker -AccountPassword (Read-Host -AsSecureString "Voer wachtwoord in") -Enabled $true -Path "OU=Gebruikers,DC=school,DC=local"

# Gebruiker uitschakelen of verwijderen
Disable-ADAccount -Identity tgebruiker
Remove-ADUser -Identity tgebruiker

# Lidmaatschap bekijken
Get-ADUser -Identity jansenp -Properties MemberOf | Select-Object -ExpandProperty MemberOf

# Groepen beheren
Get-ADGroup -Filter * | Select Name
Add-ADGroupMember -Identity "ICT-Beheer" -Members jansenp
Remove-ADGroupMember -Identity "ICT-Beheer" -Members jansenp

# Computers beheren
Get-ADComputer -Filter * | Select Name, LastLogonDate
Disable-ADAccount -Identity PC-1234

# OU's
Get-ADOrganizationalUnit -Filter * | Select Name, DistinguishedName

Rapportage en filters

# Inactieve gebruikers (bijv. 90 dagen)
Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 90.00:00:00 | 
  Select Name, LastLogonDate |
  Export-Csv C:\Rapporten\InactiveUsers.csv -NoTypeInformation

# Alle leden van een groep
Get-ADGroupMember -Identity "ICT-Beheer" | 
  Select Name, SamAccountName | 
  Export-Csv C:\Rapporten\ICTBeheerLeden.csv -NoTypeInformation
  • Module: Import-Module ActiveDirectory (standaard aanwezig op domain controllers)
  • Gebruik -Properties * om alle AD-attributen te zien.
  • Voor grote queries gebruik -SearchBase en -SearchScope om de OU te beperken.
  • Je kunt AD-data eenvoudig exporteren naar CSV voor rapportage of migraties.

CSV-bestanden in PowerShell

CSV = “Comma Separated Values” — ideaal voor import/export en rapporten

Lezen en schrijven

# Exporteren naar CSV
Get-Service | Select Name, Status, StartType |
  Export-Csv -Path C:\temp\Services.csv -NoTypeInformation

# Inlezen van CSV
$users = Import-Csv -Path C:\temp\users.csv
$users | ForEach-Object { "Gebruiker: $($_.Name)" }

# Voorbeeldbestand users.csv
# Name,SamAccountName,OU,Password
# Piet Jansen,pjansen,OU=Gebruikers,DC=school,DC=local,P@ssw0rd!

CSV gebruiken voor AD-acties

# Gebruikers importeren uit CSV
Import-Csv C:\temp\users.csv | ForEach-Object {
  New-ADUser -Name $_.Name -SamAccountName $_.SamAccountName `
    -Path $_.OU -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) `
    -Enabled $true
}

# Wachtwoorden resetten vanuit CSV
Import-Csv C:\temp\reset.csv | ForEach-Object {
  Set-ADAccountPassword -Identity $_.SamAccountName -NewPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) -Reset
}

# Export van gebruikers naar CSV
Get-ADUser -Filter * -Properties Department,Title |
  Select Name,SamAccountName,Department,Title |
  Export-Csv C:\temp\ADUsers.csv -NoTypeInformation

Oefenopdracht CSV & AD — Handige links

Tips

  • Gebruik -NoTypeInformation om onnodige metadata te verwijderen.
  • Gebruik Import-Csv voor batch-creatie of -aanpassingen.
  • Gebruik Export-Csv voor rapportage of overdracht naar Excel.
  • Combineer met AD-cmdlets voor krachtige automatisering (gebruikersbeheer, logging, inventarisatie).