PowerShell Befehle für Windows 11 und Windows 10: Hier lernen Sie Schritt für Schritt, wie Sie wichtige Befehle in der PowerShell eingeben und nutzen.

Die Windows PowerShell ist eines der mächtigsten Werkzeuge, die Microsoft in sein Betriebssystem integriert hat. Mit den richtigen PowerShell-Befehlen lassen sich Dateien verwalten, Netzwerke analysieren, Systeminfos abrufen und wiederkehrende Aufgaben vollständig automatisieren – schneller und präziser als jede grafische Oberfläche.
Dieser Artikel zeigt Ihnen, welche Befehle Sie kennen müssen, wie Sie diese einsetzen und wie Sie in Windows 10 sowie Windows 11 sofort produktiv werden.
Was ist die PowerShell und warum sollten Sie sie nutzen?
Die Windows PowerShell ist eine aufgabenbasierte Befehlszeilen-Shell sowie eine Skriptsprache, die auf dem .NET-Framework basiert. Microsoft hat sie entwickelt, um Systemadministratoren und erfahrenen Benutzern eine leistungsfähigere Alternative zur klassischen Eingabeaufforderung (cmd.exe) zu bieten. Anders als die alte Kommandozeile arbeitet PowerShell mit sogenannten Cmdlets (gesprochen: „Command-lets“) – das sind speziell entwickelte Befehle, die nach dem Muster Verb-Substantiv aufgebaut sind, zum Beispiel Get-Process oder Set-Location.
Zusätzlich ermöglicht die PowerShell den Zugriff auf das komplette Windows Management Instrumentation (WMI) sowie auf .NET-Klassen direkt aus der Kommandozeile. Deshalb eignet sie sich hervorragend für Systemadministratoren, Entwickler und alle, die Windows effizienter nutzen wollen.
Seit Windows 10 ist die PowerShell standardmäßig installiert und kann sofort genutzt werden. In Windows 11 hat Microsoft die PowerShell 5.1 weiterhin integriert, empfiehlt jedoch den Einsatz von PowerShell 7 (auch „PowerShell Core“ genannt), die plattformübergreifend auf Windows, Linux und macOS läuft. Beide Versionen sind auf Windows 10 und Windows 11 nutzbar.
PowerShell öffnen in Windows 10 und Windows 11
Bevor Sie Befehle ausführen können, müssen Sie zunächst die PowerShell starten. Es gibt dabei mehrere Wege:
Methode 1 – Über das Startmenü:
Klicken Sie auf das Startmenü, tippen Sie PowerShell ein und wählen Sie entweder „Windows PowerShell“ (Standardversion) oder „Windows PowerShell (Administrator)“, wenn Sie erhöhte Rechte benötigen.
Methode 2 – Per Tastenkombination (Windows 11):
Drücken Sie Win + X und wählen Sie aus dem Schnellzugriffsmenü „Terminal“ oder „Terminal (Administrator)“. In Windows 11 ist das Windows Terminal die Standardanwendung, das PowerShell als Standardprofil verwendet.
Methode 3 – Per Tastenkombination (Windows 10):
Drücken Sie Win + X und wählen Sie „Windows PowerShell“ oder „Windows PowerShell (Administrator)“.
Methode 4 – Über den Ausführen-Dialog:
Drücken Sie Win + R, geben Sie powershell ein und bestätigen Sie mit Enter. Für eine Administrator-Sitzung halten Sie stattdessen Strg + Umschalt + Enter gedrückt.
Methode 5 – Im Explorer:
Navigieren Sie zu einem beliebigen Ordner, halten Sie Umschalt gedrückt und klicken Sie mit der rechten Maustaste in einen freien Bereich des Ordners. Wählen Sie anschließend „PowerShell-Fenster hier öffnen“.
Tipp: Viele wichtige PowerShell-Befehle, insbesondere solche zur Systemkonfiguration, erfordern Administratorrechte. Starten Sie die PowerShell deshalb im Zweifelsfall immer als Administrator.
Die wichtigsten PowerShell-Befehle im Überblick
Grundlegende Navigations- und Hilfebefehle
Als Einstieg sind die folgenden Cmdlets besonders wichtig, da sie Ihnen helfen, die Shell zu verstehen und sich darin zurechtzufinden.
Get-Help – Das Hilfesystem der PowerShell. Damit rufen Sie die Dokumentation zu jedem Cmdlet ab:
Get-Help Get-Process
Get-Help Get-Process -Detailed
Get-Help Get-Process -Examples
Get-Command – Zeigt alle verfügbaren Befehle an. Außerdem können Sie gezielt nach Befehlen suchen, die ein bestimmtes Verb oder Substantiv enthalten:
Get-Command
Get-Command -Verb Get
Get-Command -Noun Process
Get-Alias – Zeigt alle Kurzschreibweisen (Aliase) für Cmdlets an. So ist zum Beispiel ls ein Alias für Get-ChildItem:
Get-Alias
Get-Alias ls
Clear-Host – Löscht den Bildschirminhalt des Terminals, ähnlich wie cls in der Eingabeaufforderung:
Clear-Host
Dateien und Ordner verwalten
Einer der häufigsten Anwendungsfälle der PowerShell ist die Dateiverwaltung. Die folgenden Befehle ersetzen nicht nur den Windows Explorer, sondern bieten zudem deutlich mehr Funktionen.
Get-ChildItem – Zeigt den Inhalt eines Verzeichnisses an (ähnlich wie dir oder ls):
Get-ChildItem
Get-ChildItem -Path C:\Windows
Get-ChildItem -Path C:\ -Recurse -Filter *.log
Set-Location – Wechselt das aktuelle Verzeichnis (entspricht dem cd-Befehl):
Set-Location C:\Users\Benutzername\Documents
New-Item – Erstellt neue Dateien oder Ordner:
New-Item -Path C:\Testordner -ItemType Directory
New-Item -Path C:\Testordner\test.txt -ItemType File
Copy-Item – Kopiert Dateien und Ordner:
Copy-Item -Path C:\Quelle\datei.txt -Destination C:\Ziel\
Copy-Item -Path C:\Quelle -Destination C:\Ziel -Recurse
Move-Item – Verschiebt Dateien oder Ordner:
Move-Item -Path C:\Alt\datei.txt -Destination C:\Neu\
Remove-Item – Löscht Dateien und Ordner. Dabei ist Vorsicht geboten, da gelöschte Elemente nicht in den Papierkorb verschoben werden:
Remove-Item -Path C:\Testordner\test.txt
Remove-Item -Path C:\Testordner -Recurse
Rename-Item – Benennt eine Datei oder einen Ordner um:
Rename-Item -Path C:\Ordner\alt.txt -NewName neu.txt
Get-Content – Liest den Inhalt einer Textdatei aus:
Get-Content -Path C:\logs\system.log
Get-Content -Path C:\logs\system.log -Tail 50
Prozesse und Dienste steuern
Die PowerShell eignet sich hervorragend dazu, laufende Prozesse und Windows-Dienste zu überwachen und zu steuern.
Get-Process – Listet alle laufenden Prozesse auf:
Get-Process
Get-Process -Name chrome
Stop-Process – Beendet einen Prozess anhand seines Namens oder seiner ID:
Stop-Process -Name notepad
Stop-Process -Id 1234
Start-Process – Startet ein Programm oder eine Anwendung:
Start-Process notepad
Start-Process "C:\Programme\Anwendung.exe"
Get-Service – Zeigt alle Windows-Dienste und deren Status an:
Get-Service
Get-Service -Name wuauserv
Start-Service und Stop-Service – Starten oder beenden Sie einen Dienst:
Start-Service -Name wuauserv
Stop-Service -Name wuauserv
Restart-Service – Startet einen Dienst neu – nützlich nach Konfigurationsänderungen:
Restart-Service -Name Spooler
Systeminformationen abrufen
Mit PowerShell lassen sich ausführliche Systeminformationen abfragen, die über das hinausgehen, was der Task-Manager oder die Systemsteuerung bieten.
Get-ComputerInfo – Gibt eine umfassende Übersicht über das System aus (nur PowerShell 5.1 und neuer):
Get-ComputerInfo
Get-ComputerInfo -Property OsName, CsName, WindowsVersion
Get-WmiObject / Get-CimInstance – Fragt WMI-Klassen ab. Get-CimInstance ist dabei die modernere und empfohlene Variante:
Get-CimInstance -ClassName Win32_OperatingSystem
Get-CimInstance -ClassName Win32_Processor
Get-CimInstance -ClassName Win32_PhysicalMemory
Get-CimInstance -ClassName Win32_LogicalDisk
Get-EventLog – Liest Einträge aus dem Windows-Ereignisprotokoll (für Windows PowerShell 5.1):
Get-EventLog -LogName System -Newest 20
Get-EventLog -LogName Application -EntryType Error -Newest 10
Get-Disk – Zeigt alle installierten Festplatten und SSDs an:
Get-Disk
Get-Volume – Listet alle Laufwerksvolumes auf:
Get-Volume
Netzwerk-Befehle in der PowerShell
Netzwerkdiagnose und -konfiguration gehören zu den stärksten Bereichen der PowerShell. Deshalb sind diese Befehle besonders für IT-Administratoren unverzichtbar.
Test-Connection – Führt einen Ping aus, ähnlich dem klassischen ping-Befehl, bietet jedoch mehr Optionen:
Test-Connection google.com
Test-Connection -ComputerName google.com -Count 5
Get-NetAdapter – Zeigt alle Netzwerkadapter und ihren Status an:
Get-NetAdapter
Get-NetIPAddress – Zeigt alle konfigurierten IP-Adressen:
Get-NetIPAddress
Get-NetIPAddress -AddressFamily IPv4
Get-NetRoute – Zeigt die aktuelle Routingtabelle:
Get-NetRoute
Resolve-DnsName – Löst einen Hostnamen in eine IP-Adresse auf (entspricht nslookup):
Resolve-DnsName google.com
Test-NetConnection – Prüft die Netzwerkverbindung zu einem Host auf einem bestimmten Port:
Test-NetConnection -ComputerName google.com -Port 443
Test-NetConnection -ComputerName 192.168.1.1 -Port 80
Get-NetTCPConnection – Zeigt alle aktiven TCP-Verbindungen an (entspricht netstat):
Get-NetTCPConnection
Get-NetTCPConnection -State Established
Benutzer und Berechtigungen verwalten
Auf lokaler Ebene erlaubt PowerShell die vollständige Verwaltung von Benutzerkonten und Gruppenberechtigungen.
Get-LocalUser – Listet alle lokalen Benutzerkonten auf:
Get-LocalUser
New-LocalUser – Erstellt ein neues lokales Benutzerkonto:
$password = Read-Host -AsSecureString "Passwort eingeben"
New-LocalUser -Name "Testbenutzer" -Password $password
Add-LocalGroupMember – Fügt einen Benutzer einer lokalen Gruppe hinzu:
Add-LocalGroupMember -Group "Administratoren" -Member "Testbenutzer"
Get-Acl – Zeigt die Zugriffsberechtigungen (ACL) einer Datei oder eines Ordners:
Get-Acl -Path C:\Wichtig
Set-Acl – Legt neue Berechtigungen für eine Datei oder einen Ordner fest.
Windows Update und Software verwalten
Seit Windows 10 und Windows 11 kann PowerShell in Kombination mit dem PSWindowsUpdate-Modul oder mit dem integrierten Windows Update-Modul genutzt werden.
Windows-Updates über PowerShell installieren:
Installieren Sie zunächst das Modul PSWindowsUpdate aus der PowerShell Gallery:
Install-Module -Name PSWindowsUpdate -Force
Import-Module PSWindowsUpdate
Get-WindowsUpdate
Install-WindowsUpdate -AcceptAll -AutoReboot
Installierte Software auflisten:
Get-Package
Get-Package | Where-Object {$_.Name -like "*Office*"}
Winget über PowerShell nutzen (Windows 10/11):
Ebenso lässt sich winget (der Windows Package Manager) direkt aus der PowerShell aufrufen:
winget search firefox
winget install Mozilla.Firefox
winget upgrade --all
Skripte erstellen und ausführen
Einer der größten Vorteile der PowerShell ist die Möglichkeit, Skripte zu schreiben und zu automatisieren. PowerShell-Skripte werden als .ps1-Dateien gespeichert.
Ausführungsrichtlinie prüfen:
Standardmäßig sind Skripte in Windows aus Sicherheitsgründen blockiert. Prüfen Sie zunächst die aktuelle Richtlinie:
Get-ExecutionPolicy
Ausführungsrichtlinie anpassen:
Für die eigene Entwicklung empfiehlt sich die Richtlinie RemoteSigned, die lokale Skripte erlaubt:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Skript erstellen und ausführen:
Speichern Sie Ihr Skript als .ps1-Datei, zum Beispiel backup.ps1, und führen Sie es anschließend aus:
.\backup.ps1
Beispiel-Skript – Automatisches Backup:
$Quelle = "C:\Dokumente"
$Ziel = "D:\Backup\Dokumente_$(Get-Date -Format 'yyyyMMdd')"
Copy-Item -Path $Quelle -Destination $Ziel -Recurse
Write-Host "Backup abgeschlossen: $Ziel"
Pipelines und Filterung
Ein weiteres mächtiges Konzept der PowerShell sind Pipelines. Damit können Sie die Ausgabe eines Cmdlets direkt als Eingabe für ein weiteres nutzen. Dadurch werden komplexe Aufgaben mit wenigen Zeilen lösbar.
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
Get-Service | Where-Object {$_.Status -eq "Stopped"}
Get-ChildItem C:\ -Recurse | Where-Object {$_.Extension -eq ".log"} | Remove-Item
Zusätzlich ist Export-Csv ein häufig genutzter Befehl, um Daten in eine CSV-Datei zu exportieren:
Get-Process | Export-Csv -Path C:\prozesse.csv -NoTypeInformation
Ebenso nützlich ist Out-GridView, das die Ergebnisse in einem übersichtlichen Tabellenformat anzeigt:
Get-Process | Out-GridView
Empfohlene Vorgehensweisen für den PowerShell-Einsatz
Damit Sie effizient und sicher mit der PowerShell arbeiten, sollten Sie die folgenden Vorgehensweisen beachten:
1. Verwenden Sie das Windows Terminal: In Windows 11 und ab Windows 10 Version 1903 steht das Windows Terminal zur Verfügung. Es unterstützt mehrere Tabs, farbige Themes und ermöglicht das gleichzeitige Öffnen von PowerShell, WSL und CMD in einem Fenster. Installieren Sie es über den Microsoft Store (Suchbegriff: „Windows Terminal“).
2. Nutzen Sie die PowerShell ISE oder Visual Studio Code: Für das Schreiben von Skripten empfehlen wir entweder die integrierte PowerShell ISE (Integrated Scripting Environment, bereits in Windows enthalten) oder – für professionelle Anwendungen – Visual Studio Code mit der Erweiterung „PowerShell“ von Microsoft. VS Code bietet dabei Syntaxhervorhebung, Autovervollständigung und einen integrierten Debugger.
3. Testen Sie Befehle zuerst mit -WhatIf: Viele PowerShell-Cmdlets unterstützen den Parameter -WhatIf, der simuliert, was der Befehl tun würde, ohne ihn tatsächlich auszuführen:
Remove-Item -Path C:\Wichtig -Recurse -WhatIf
4. Nutzen Sie Tab-Vervollständigung: Drücken Sie die Tab-Taste, um Cmdlets, Parameter und Pfade automatisch zu vervollständigen. Deshalb sparen Sie erheblich Zeit und vermeiden Tippfehler.
5. Aktualisieren Sie die Hilfe regelmäßig: Führen Sie folgenden Befehl aus, um die Hilfedokumentation aktuell zu halten:
Update-Help
6. Setzen Sie PowerShell 7 ein: Für neue Projekte und plattformübergreifende Skripte empfiehlt sich PowerShell 7, die Sie kostenlos über GitHub (github.com/PowerShell/PowerShell) oder den Microsoft Store herunterladen können. Sie läuft parallel zur vorinstallierten PowerShell 5.1 und bietet verbesserte Performance sowie neue Sprachfeatures.
