EMZETT.
Login

Kurz: PowerShell ist Microsofts Automatisierungs-Shell und Skriptsprache. Der große Unterschied zu Bash: Befehle (Cmdlets) tauschen über die Pipeline Objekte aus, nicht nur Text.

Teil des Kurses PowerShell

Kapitel 1 von 8 im Kurs PowerShell. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Was ist PowerShell?

PowerShell ist Microsofts Automatisierungs-Shell und Skriptsprache. Der große Unterschied zu Bash: Befehle (Cmdlets) tauschen über die Pipeline Objekte aus, nicht nur Text. Ein Prozess ist ein Objekt mit Eigenschaften (Name, CPU, Id), die du direkt abfragst, ohne Text zu zerlegen.

  • Windows PowerShell 5.1 ist in Windows enthalten (powershell.exe)
  • PowerShell 7+ (pwsh) ist plattformübergreifend (Windows, macOS, Linux), Open Source und die aktuelle Version

Typisch: Windows- und Server-Administration, Active Directory, Azure und Microsoft 365, Automatisierung, CI/CD.

Starten

pwsh                            # interaktive Shell (Linux/macOS/Windows)
pwsh -File skript.ps1           # Skript ausführen
pwsh -Command "Get-Date"        # einzelner Befehl

Auf Windows brauchst du für Skripte evtl. Set-ExecutionPolicy RemoteSigned -Scope CurrentUser.

Das erste Skript

hallo.ps1

Write-Output "Hallo PowerShell!"
$name = "Mia"
Write-Output "Hallo, $name!"
"Ausdruck wird direkt ausgegeben: $(2 + 3)"
Write-Host "Write-Host schreibt direkt auf die Konsole"
2 + 3
$PSVersionTable.PSVersion.Major -ge 5

Ausgabe:

Hallo PowerShell!
Hallo, Mia!
Ausdruck wird direkt ausgegeben: 5
Write-Host schreibt direkt auf die Konsole
5
True
  • Befehle heißen Cmdlets im Format Verb-Nomen: Get-Process, Set-Location, Write-Output
  • Variablen beginnen mit $
  • Jeder Ausdruck, dessen Ergebnis nicht zugewiesen wird, landet in der Ausgabe (2 + 3 gibt 5 aus)
  • Kommentare: # bis Zeilenende, <# mehrzeilig #>
  • Groß-/Kleinschreibung ist egal; Vergleiche ignorieren sie standardmäßig

Hilfe und Entdecken

Drei Cmdlets erklären sich fast alles:

Get-Command -Verb Get -Noun Process      # welche Befehle gibt es?
Get-Help Get-Process -Examples           # Hilfe mit Beispielen
Get-Process | Get-Member                 # welche Eigenschaften und Methoden hat das Objekt?
(Get-Command Get-ChildItem).CommandType
Get-Alias gci | ForEach-Object { "$($_.Name) -> $($_.Definition)" }
(Get-Verb | Where-Object Verb -eq 'Get').Verb
"abc".GetType().Name
(1..3).GetType().Name
Get-Date -Year 2025 -Month 3 -Day 15 -Hour 0 -Minute 0 -Second 0 -Format "yyyy-MM-dd"

Ausgabe:

Cmdlet
gci -> Get-ChildItem
Get
String
Object[]
2025-03-15

Merke

  • PowerShell tauscht Objekte statt Text aus
  • Cmdlets heißen Verb-Nomen (Get-Process), Variablen beginnen mit $
  • Get-Command, Get-Help, Get-Member sind die Entdeckungswerkzeuge
  • Nicht zugewiesene Ausdrücke werden ausgegeben
  • PowerShell 7 (pwsh) läuft plattformübergreifend

Übungsaufgabe

Gib deinen Namen und das Ergebnis von 6 * 7 aus und prüfe mit Get-Member, welche Methoden ein String hat.

Quiz zur Selbstkontrolle

Weiter im Kurs

Weiter: Variablen, Datentypen und Operatoren

Alle Kapitel: PowerShell im Überblick