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
(vergeetUpdate-Help
niet). - Cmdlets volgen Werkwoord-Zaaknomen patroon (Get-Process, Set-Item).
- Gebruik
Where-Object
enForEach-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).