PowerShell-spiekbriefje
Een doorzoekbaar, afdrukbaar PowerShell-naslagwerk — cmdlets, de pipeline, variabelen, bestanden, loops, functies, objecten en beheer. Gratis.
Hulp krijgen & ontdekken
12Get-Help Get-Process
Toon hulp voor een cmdlet
Get-Help Get-Process -Examples
Toon gebruiksvoorbeelden voor een cmdlet
Get-Help Get-Process -Full
Toon de volledige hulp inclusief parameters
Get-Help about_Functions
Lees een conceptueel about_-onderwerp
Update-Help
Download de nieuwste hulpbestanden
Get-Command -Noun Process
Toon cmdlets die op een noun werken
Get-Command -Verb Get
Toon cmdlets die een gegeven verb gebruiken
Get-Command *service*
Zoek commando's op wildcard-naam
Get-Process | Get-Member
Toon de eigenschappen en methoden van objecten
Get-Alias ls
Toon naar welk commando een alias verwijst
Get-Alias -Definition Get-ChildItem
Toon alle aliassen voor een cmdlet
$PSVersionTable
Toon de PowerShell-versie en -editie
Variabelen & types
13$x = 5
Wijs een waarde toe aan een variabele
[int]$n = '42'
Declareer een sterk getypeerde variabele
$null
De null- / lege waarde
$true; $false
Booleaanse literals
$arr = @(1, 2, 3)
Maak een array
$arr += 4
Voeg een element toe aan een array
$arr[0]; $arr[-1]
Indexeer eerste en laatste array-elementen
$hash = @{ Name = 'Ann'; Age = 30 }
Maak een hashtable
$hash['Name']; $hash.Name
Lees een hashtable-waarde op sleutel
$env:PATH
Lees een omgevingsvariabele
$env:MY_VAR = 'value'
Stel een omgevingsvariabele in voor de sessie
Get-Variable
Toon alle gedefinieerde variabelen
[math]::Round(3.14159, 2)
Roep een statische .NET-methode aan
Pipeline & filteren
12Get-Process | Where-Object { $_.CPU -gt 10 }
Filter objecten op een voorwaarde
Get-Process | ? CPU -gt 10
Filter met de ?-alias en vereenvoudigde syntaxis
Get-Process | ForEach-Object { $_.Name }
Voer een scriptblok uit voor elk object
Get-Process | % { $_.Kill() }
Itereer met de %-alias
Get-Process | Select-Object Name, Id
Behoud alleen specifieke eigenschappen
Get-Process | Select-Object -First 5
Neem de eerste N objecten
Get-Process | Sort-Object CPU -Descending
Sorteer objecten op een eigenschap
Get-Process | Group-Object Company
Groepeer objecten op een eigenschap
Get-Process | Measure-Object CPU -Sum
Aggregeer numerieke waarden (som, gemiddelde)
Get-ChildItem | Select-Object -Unique
Retourneer unieke objecten
1..5 | ForEach-Object { $_ * 2 }
Pipe een bereik door een transformatie
Get-Process | Out-GridView
Stuur resultaten naar een interactief grid
Bestanden & paden
13Get-ChildItem -Path C:\Logs
Toon items in een map (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
Toon matchende bestanden recursief
Get-Content .\file.txt
Lees een bestand regel voor regel
Get-Content .\file.txt -Tail 20
Lees de laatste N regels van een bestand
Set-Content .\file.txt -Value 'Hi'
Schrijf (overschrijf) tekst naar een bestand
Add-Content .\file.txt -Value 'Hi'
Voeg tekst toe aan een bestand
Copy-Item a.txt b.txt
Kopieer een bestand of map
Move-Item a.txt .\dir\
Verplaats of hernoem een item
Remove-Item a.txt -Force
Verwijder een bestand of map
New-Item -ItemType Directory -Path .\dir
Maak een nieuw bestand of map
Test-Path .\file.txt
Controleer of een pad bestaat
Get-Location
Toon de huidige map (alias pwd)
Set-Location C:\Temp
Verander de huidige map (alias cd)
Strings & tekst
12'Hello World' -match 'World'
Test een string tegen een regex
'Hello' -replace 'l', 'L'
Vervang tekst met een regex
'a,b,c' -split ','
Splits een string in een array met regex
'a-b-c'.Split('-')
Splits met de .NET String-methode
'a', 'b' -join ', '
Voeg array-elementen samen tot een string
Select-String -Path *.log -Pattern 'error'
Grep-achtig zoeken over bestanden
'{0} of {1}' -f 3, 10
Formatteer een string met placeholders
' hi '.Trim()
Verwijder witruimte aan begin en einde
'Hello'.ToUpper()
Converteer een string naar hoofdletters
'Hello'.Substring(0, 3)
Extraheer een substring op index en lengte
'Hello'.Contains('ell')
Test of een string tekst bevat
'Hello'.Length
Haal het aantal tekens op
Loops & voorwaarden
12if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
Vertak met if / elseif / else
switch ($x) { 1 { 'one' } default { 'other' } }
Match een waarde tegen cases
foreach ($i in $arr) { $i }
Itereer over een collectie
for ($i = 0; $i -lt 5; $i++) { $i }
Getelde loop met een index
while ($x -lt 10) { $x++ }
Loop zolang een voorwaarde waar is
do { $x++ } while ($x -lt 10)
Loop minstens één keer, test dan
$x -eq 5; $x -ne 5
Gelijk- en ongelijk-vergelijkingen
$x -gt 5; $x -lt 5
Groter-dan- en kleiner-dan-vergelijkingen
$x -ge 5; $x -le 5
Groter/kleiner-dan-of-gelijk-vergelijkingen
'abc' -like 'a*'
Wildcard-match-vergelijking
@(1, 2, 3) -contains 2
Test array-lidmaatschap
break; continue
Verlaat of sla de huidige loop-iteratie over
Functies & scripts
12function Get-Sum { param($a, $b) $a + $b }
Definieer een functie met parameters
Get-Sum -a 2 -b 3
Roep een functie aan met benoemde argumenten
function Test { param([int]$n = 1) }
Getypeerde parameter met een standaardwaarde
param([Parameter(Mandatory)]$Name)
Vereis dat een parameter wordt meegegeven
return $value
Retourneer een waarde uit een functie
function F { [CmdletBinding()] param() }
Maak een geavanceerde functie (common params)
Write-Verbose 'msg' -Verbose
Genereer een verbose berichtenstroom
Write-Output $result
Stuur een object naar de pipeline
Write-Error 'failed'
Schrijf naar de error-stream
.\script.ps1 -Arg value
Voer een scriptbestand uit met argumenten
. .\functions.ps1
Dot-source een script in de sessie
try { } catch { $_ } finally { }
Verwerk terminerende fouten
Objecten & eigenschappen
12Get-Process | Select-Object -ExpandProperty Name
Retourneer ruwe eigenschapwaarden, geen objecten
(Get-Process).Name
Benader een eigenschap op elk object
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
Voeg een berekende eigenschap toe
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
Bouw een aangepast object
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
Koppel een eigenschap aan een object
$obj.PSObject.Properties.Name
Toon de eigenschapnamen van een object
$obj | Format-Table -AutoSize
Toon objecten als een uitgelijnde tabel
$obj | Format-List *
Toon alle eigenschappen als een lijst
$obj | ConvertTo-Json -Depth 5
Serialiseer een object naar JSON
Get-Content data.json | ConvertFrom-Json
Parse JSON naar objecten
$obj | Export-Csv out.csv -NoTypeInformation
Exporteer objecten naar een CSV-bestand
Import-Csv data.csv
Lees een CSV-bestand in objecten
Processen & services
12Get-Process
Toon lopende processen (alias ps)
Get-Process -Name chrome
Haal processen op op naam
Stop-Process -Name notepad -Force
Beëindig een proces
Start-Process notepad.exe
Start een nieuw proces
Get-Service
Toon Windows-services
Get-Service -Name wuauserv
Haal een service op op naam
Start-Service -Name wuauserv
Start een gestopte service
Stop-Service -Name wuauserv
Stop een lopende service
Restart-Service -Name wuauserv
Herstart een service
Set-Service -Name wuauserv -StartupType Manual
Wijzig de startmodus van een service
Get-EventLog -LogName System -Newest 20
Lees recente klassieke event-log-entries
Get-WinEvent -LogName Application -MaxEvents 20
Bevraag moderne event-logs
Remoting & jobs
12Enter-PSSession -ComputerName Srv01
Start een interactieve remote sessie
Exit-PSSession
Verlaat een interactieve remote sessie
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
Voer een commando uit op een remote host
$s = New-PSSession -ComputerName Srv01
Maak een persistente remote sessie
Invoke-Command -Session $s -ScriptBlock { hostname }
Hergebruik een bestaande remote sessie
Remove-PSSession $s
Sluit en verwijder een remote sessie
Start-Job -ScriptBlock { Get-Process }
Voer een commando uit als achtergrondjob
Get-Job
Toon achtergrondjobs en hun status
Receive-Job -Id 1 -Keep
Haal de uitvoer van een job op
Wait-Job -Id 1
Blokkeer tot een job voltooid is
Stop-Job -Id 1; Remove-Job -Id 1
Stop en verwijder een achtergrondjob
Get-Process | Start-ThreadJob { $input }
Voer lichtgewicht in-process thread-jobs uit
Modules & packages
12Get-Module
Toon momenteel geladen modules
Get-Module -ListAvailable
Toon alle geïnstalleerde modules
Import-Module Pester
Laad een module in de sessie
Remove-Module Pester
Verwijder een module uit de sessie
Find-Module -Name PSReadLine
Zoek in de gallery naar een module
Install-Module PSReadLine -Scope CurrentUser
Installeer een module uit de gallery
Update-Module PSReadLine
Werk een geïnstalleerde module bij
Uninstall-Module PSReadLine
Verwijder een geïnstalleerde module
Get-ExecutionPolicy
Toon de huidige script-executiebeleid
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Sta uitvoeren van gesigneerde en lokale scripts toe
Get-PSRepository
Toon geconfigureerde package-repositories
$PROFILE
Pad naar het huidige gebruikersprofielscript
Geen vermelding komt overeen met “:q”.
Hulp nodig?
Een probleem met deze tool gevonden? Laat het ons weten.