PowerShell hat die Art und Weise revolutioniert, wie Windows-Benutzer mit ihren Betriebssystemen interagieren, indem es komplexe Verwaltungsaufgaben in einfache, automatisierte Prozesse umwandelt12. Ganz gleich, ob du Systemadministrator, IT-Experte oder ein normaler Windows-Benutzer bist, der seine Produktivität steigern möchte: Durch die Beherrschung der wichtigsten PowerShell-Befehle kannst du unzählige Stunden sparen und leistungsstarke Automatisierungsfunktionen freischalten34.
Dieses umfassende Handbuch behandelt die wichtigsten PowerShell-Befehle, die jeder Windows-Benutzer beherrschen sollte, von der grundlegenden Navigation bis zur erweiterten Systemverwaltung. Am Ende dieses Tutorials hast du das Selbstvertrauen, die leistungsstarken Funktionen der PowerShell für tägliche Computeraufgaben zu nutzen.
Inhaltsübersicht
- Was ist PowerShell und warum solltest du dich dafür interessieren?
- Erste Schritte: PowerShell öffnen
- Anmeldungen
- Befehle zur Verwaltung von Dateien und Ordnern
- Systeminformationen und Prozessmanagement
- Befehle zur Fehlersuche im Netzwerk
- Befehle für Inhalt und Datenmanipulation
- Arbeiten mit PowerShell-Pipelines
- Zeit- und Datumsverwaltung
- Wesentliche PowerShell-Best Practices
- Erstellen deines ersten PowerShell-Skripts
- Fortgeschrittener PowerShell-Lernpfad
- Fehlerbehebung bei häufigen PowerShell-Problemen
- Schlussfolgerung: Erweitere dein Windows-Erlebnis
Was ist PowerShell und warum solltest du dich dafür interessieren?
OK das auf allen modernen Windows-Betriebssystemen vorinstalliert ist2. Anders als die herkömmliche Eingabeaufforderung verwendet PowerShell eine Verb-Nomen-Syntaxstruktur die Befehle intuitiv und für Menschen lesbar macht1. Zum Beispiel, Get-Process ruft laufende Prozesse ab, während Stop-Dienst stoppt die Systemdienste.
Hauptvorteile von PowerShell gegenüber der Eingabeaufforderung
PowerShell bietet erhebliche Vorteile gegenüber der herkömmlichen Befehlszeilenschnittstelle1:
- Objektbasierte Ausgabe: Anstelle von einfachem Text arbeitet PowerShell mit strukturierten Objekten, die Eigenschaften und Methoden enthalten
- Erweiterte Skripting-Fähigkeiten: Erstellung komplexer Automatisierungsskripte mit Schleifen, Bedingungen und Funktionen
- Erweiterbar durch Module: Hinzufügen von Funktionen durch .NET-Bibliotheken und benutzerdefinierte Cmdlets
- Unterstützung von Pipelines: Verkette Befehle, um Daten effizient zu verarbeiten
- Plattformübergreifende Kompatibilität: Ausführen von PowerShell unter Windows, Linux und macOS
Erste Schritte: PowerShell öffnen
Bevor du dich mit den Befehlen befasst, musst du wissen, wie du auf PowerShell zugreifen kannst25Senden
- Gib "PowerShell" ein. in der Windows-Suchleiste
- Klicke mit der rechten Maustaste auf . auf "Windows PowerShell"
- Wähle "Als Administrator ausführen". für erhöhte Privilegien
Für die meisten administrativen Aufgaben stellt die Ausführung von PowerShell als Administrator sicher, dass du über die erforderlichen Berechtigungen zum Ausführen von Befehlen auf Systemebene verfügst.
Anmeldungen
1. Hilfe holen: Dein integriertes Handbuch
Die Get-Help Befehl ist wohl der Wichtigster PowerShell-Befehl die du jemals lernen wirst467. Es bietet umfassende Dokumentation für jedes Cmdlet, jede Funktion und jedes Konzept in PowerShell.
Grundlegende Syntax:
powershellGet-Help
Praktische Beispiele:
powershell# Grundlegende Hilfe für einen Befehl erhalten
Get-Help Get-Process
# Ausführliche Hilfe mit Beispielen erhalten
Get-Help Get-Process -Full
# Nur Beispiele anzeigen
Get-Help Get-Process -Beispiele
# Online-Hilfe-Dokumentation öffnen
Get-Help Get-Process -Online
Profi-Tipp: Verwende Update-Hilfe regelmäßig, um sicherzustellen, dass du über die neueste Hilfedokumentation verfügst6.
2. Get-Befehl: Verfügbare Befehle entdecken
Wenn du nicht weißt, welchen Befehl du verwenden sollst, Get-Befehl URL Finde das richtige Cmdlet für deine Aufgabe486.
Nützliche Muster:
powershell# Alle verfügbaren Befehle auflisten
Get-Command
# Befehle suchen, die mit "Get" beginnen
Get-Befehl Get-*
# Befehle suchen, die "Process" enthalten
Get-Befehl *Prozess*
# Befehle für bestimmte Aktionen finden
Get-Befehl Start-*
Get-Befehl Stop-*
Dieser Ansatz ist besonders hilfreich, wenn du weißt, welche Aktion du durchführen möchtest, aber den genauen Befehlsnamen nicht kennst.
3. Get-Member: Verstehen von Objekteigenschaften
PowerShell arbeitet mit Objekten, und Get-Member zeigt dir welche Eigenschaften und Methoden sind für jedes Objekt verfügbar6.
powershell# Siehe Eigenschaften von Prozessobjekten
Get-Process | Get-Member
# Eigenschaften von Dienstobjekten anzeigen
Get-Service | Get-Member
Befehle zur Verwaltung von Dateien und Ordnern
4. Get-ChildItem: Verzeichnisinhalt auflisten
Get-ChildItem ist das Äquivalent der PowerShell zum dir Befehl, aber mit viel mehr Funktionalität1910.
Allgemeine Verwendung:
powershell# Aktuelle Verzeichnisinhalte auflisten
Get-ChildItem
# Liste mit versteckten Dateien
Get-ChildItem -Force
# Rekursive Auflistung (einschließlich Unterverzeichnisse)
Get-ChildItem -Recurse
# Filter nach Dateityp
Get-ChildItem *.txt
# Suche nach Dateien in Unterverzeichnissen
Get-ChildItem -Path C:\Users -Include *.pdf -Recurse
Aliasnamen: Du kannst auch Folgendes verwenden ls, dir, oder gci als Abkürzungen10.
5. Standort festlegen: Verzeichnisse durchsuchen
Navigiere effizient durch dein Dateisystem mit Standort festlegen10.
powershell# Wechsel in ein bestimmtes Verzeichnis
Set-Location C:\Users\Documents
# Zum übergeordneten Verzeichnis wechseln
Set-Location ..
# Zum vorherigen Speicherort zurückkehren
Set-Location -
# Navigieren mit Aliasen
cd C:\Windows
sl C:\Temp
6. Artikel kopieren: Kopieren von Dateien und Ordnern
Die Artikel kopieren Cmdlet bietet leistungsstarke Funktionen zum Kopieren von Dateien910.
powershell# Kopieren einer einzelnen Datei
Copy-Item "Quelle.txt" "Ziel.txt"
# Kopieren mit Überschreibschutz
Copy-Item "quelle.txt" "backup.txt" -Force
# Kopieren ganzer Verzeichnisse
Copy-Item "C:\Source" "C:\Backup" -Recurse
# Kopieren mehrerer Dateien mit Platzhaltern
Copy-Item "*.log" "C:\Logs\"
7. Element verschieben: Dateien verschieben und umbenennen
Verwende Artikel verschieben für Verschieben und Umbenennen Dateien und Verzeichnisse1112.
powershell# Verschieben einer Datei an einen anderen Ort
Move-Item "oldfile.txt" "C:\NewLocation\"
# Umbenennen einer Datei
Move-Item "alterName.txt" "neuerName.txt"
# Verschieben aller Dateien eines bestimmten Typs
Get-ChildItem *.txt | Move-Item -Destination "C:\TextFiles\"
8. Element entfernen: Löschen von Dateien und Ordnern
Sicheres Löschen von Dateien und Verzeichnissen mit Remove-Item10.
powershell# Löschen einer einzelnen Datei
Remove-Item "unerwünscht.txt"
# Löschen mit Bestätigung
Remove-Item "wichtig.txt" -Bestätigung
# Verzeichnisse rekursiv löschen
Remove-Item "C:\TempFolder" -Recurse -Force
# Dateien nach Muster löschen
Remove-Item "*.tmp"
Warnung: Sei äußerst vorsichtig mit Remove-Iteminsbesondere bei der Verwendung von -Rückzahlung und -Force Parameter, da gelöschte Dateien möglicherweise nicht wiederhergestellt werden können.
9. Neuer Eintrag: Dateien und Verzeichnisse erstellen
Erstelle schnell neue Dateien und Ordner mit Neuer Artikel1013.
powershell# Erstellen eines neuen Verzeichnisses
New-Item -Name "NewFolder" -ItemType Directory
# Eine neue Datei erstellen
New-Item -Name "newfile.txt" -ItemType Datei
# Datei mit Inhalt erstellen
New-Item "readme.txt" -ItemType File -Value "Dies ist der anfängliche Inhalt"
# Verschachtelte Verzeichnisse erstellen
New-Item "C:\Projects\NewProject\Source" -ItemType Directory -Force
Systeminformationen und Prozessmanagement
10. Get-Prozess: Laufende Prozesse überwachen
Get-Process bietet detaillierte Informationen über laufende Prozesse in deinem System34.
powershell# Alle laufenden Prozesse auflisten
Get-Process
# Bestimmten Prozess nach Namen abrufen
Get-Process notepad
# Prozesse mit Platzhalter abrufen
Get-Prozess note*
# Prozesse nach CPU-Auslastung sortieren
Get-Process | Sort-Object CPU -Descending
# Ermitteln der 10 speicherintensivsten Prozesse
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
11. Prozess anhalten: Beenden von Prozessen
Nicht reagierende oder unnötige Prozesse stoppen mit Stop-Verfahren4.
powershell# Prozess nach Name anhalten
Stop-Process -Name "notepad"
# Prozess nach ID stoppen
Stop-Process -Id 1234
# Anhalten mit Bestätigung
Stop-Process -Name "chrome" -Confirm
# Stoppen hartnäckiger Prozesse erzwingen
Stop-Process -Name "application" -Force
12. Dienst holen: Verwalten von Windows-Diensten
Überwachen und Verwalten Windows-Dienste die im Hintergrund laufen41415.
powershell# Alle Dienste auflisten
Get-Service
# Dienste nach Status abrufen
Get-Service | Where-Object Status -eq "Running"
# Bestimmten Dienst abrufen
Get-Service -Name "Spooler"
# Get-Dienste, die mit bestimmten Buchstaben beginnen
Get-Service -Name "Win*"
13. Start-Dienst und Stop-Dienst: Dienste steuern
Windows-Dienste starten und beenden nach Bedarf1415.
powershell# Starten eines Dienstes
Start-Service -Name "Spooler"
# Stoppen eines Dienstes
Stop-Dienst -Name "Spooler"
# Neustart eines Dienstes
Restart-Service -Name "Spooler"
# Mehrere Dienste starten
Get-Service -Name "BITS", "Spooler" | Start-Service
Befehle zur Fehlersuche im Netzwerk
14. Test-NetConnection: Testen der Netzwerkkonnektivität
Test-NetConnection ist die erweiterte Version von ping in PowerShell mit zusätzlichen Funktionen1617.
powershell# Basistest der Konnektivität
Test-NetConnection google.com
# Test eines bestimmten Ports
Test-NetConnection google.com -Port 80
# Verfolgen der Route zum Ziel
Test-NetConnection google.com -TraceRoute
# Mehrere Verbindungen testen
"google.com", "microsoft.com" | ForEach-Object { Test-NetConnection $_ }
15. Get-NetIPAddress: IP-Konfiguration anzeigen
Prüfe dein Netzwerk-IP-Konfiguration mit Get-NetIPAddress1617.
powershell# Alle IP-Adressen anzeigen
Get-NetIPAddress
# Nur IPv4-Adressen anzeigen
Get-NetIPAddress -AddressFamily IPv4
# Spezifische Adapterinformationen abrufen
Get-NetIPAddress -InterfaceAlias "Ethernet"
16. Resolve-DnsName: DNS-Auflösungstest
Test der DNS-Auflösung und Domäneninformationen abrufen16.
powershell# Basic DNS lookup
Resolve-DnsName google.com
# Suche nach bestimmten Eintragstypen
Resolve-DnsName google.com -Typ MX
# Bestimmten DNS-Server verwenden
Resolve-DnsName google.com -Server 8.8.8.8
Befehle für Inhalt und Datenmanipulation
17. Get-Content: Dateiinhalt lesen
Seiten direkt in PowerShell1819.
powershellGeräte
18. Out-File: Ausgabe in Dateien exportieren
Befehlsausgabe speichern Seite619.
powershell# Prozessliste in Datei speichern
Get-Process | Out-File "processes.txt"
# An bestehende Datei anhängen
Get-Date | Out-File "log.txt" -Append
# Save with specific encoding
Get-Service | Out-File "services.txt" -Encoding UTF8
Aufrufe
Sitzungen wird aus den Befehlsergebnissen angezeigt2021.
powershell# Nur bestimmte Eigenschaften anzeigen
Get-Process | Select-Object Name, CPU, WorkingSet
# Die ersten paar Ergebnisse anzeigen
Get-ChildItem | Select-Object -First 5
# Eindeutige Werte auswählen
Get-Process | Select-Object ProcessName -Unique
Arbeiten mit PowerShell-Pipelines
20. Wo-Objekt: Ergebnisse filtern
Befehlsergebnisse filtern auf der Grundlage bestimmter Kriterien2021.
powershell# Filter laufende Dienste
Get-Service | Where-Object Status -eq "Running"
# Große Dateien filtern
Get-ChildItem | Where-Object Length -gt 1MB
# Komplexe Filterung mit mehreren Bedingungen
Get-Process | Where-Object {$_.CPU -gt 100 -und $_.WorkingSet -gt 50MB}
21. Objekt sortieren: Ergebnisse sortieren
Organisieren der Ausgabe in aufsteigender oder absteigender Reihenfolge21.
powershell# Prozesse nach Namen sortieren
Get-Process | Sort-Object Name
# Sortieren nach mehreren Eigenschaften
Get-ChildItem | Sort-Object LastWriteTime, Name
# Sortieren in absteigender Reihenfolge
Get-Process | Sort-Object CPU -Descending
22. ForEach-Object: Jedes Element verarbeiten
Aktionen für jedes Objekt durchführen in einer Pipeline1921.
powershell# Jede Datei verarbeiten
Get-ChildItem *.txt | ForEach-Object {
Write-Host "Processing: $($_.Name)"
}
# Jedes Objekt modifizieren
Get-Service | ForEach-Object {
"$($_.Name): $($_.Status)"
}
Zeit- und Datumsverwaltung
23. Get-Date: Arbeiten mit Daten und Zeiten
Abrufen und Formatieren aktuelle Datums- und Zeitangaben19.
powershell# Aktuelles Datum und Uhrzeit abfragen
Get-Date
# Datum auf bestimmte Weise formatieren
Get-Date -Format "jjjj-MM-tt HH:mm:ss"
# Get-Date Komponenten
(Get-Date).DayOfWeek
(Hole-Datum).Jahr
# Berechne zukünftige Daten
(Hole-Datum).AddTage(30)
Wesentliche PowerShell-Best Practices
Tabulatorvervollständigung verwenden
PowerShells Funktion zur Vervollständigung der Registerkarten beschleunigt die Befehlseingabe drastisch17. Drücke die Tabulatortaste, nachdem du teilweise Befehlsnamen, Parameter oder Dateipfade eingegeben hast, um sie automatisch zu vervollständigen.
Aliase nutzen
PowerShell enthält viele integrierte Aliasnamen für allgemeine Befehle5:
lsfidodirfürGet-ChildItemcdfürStandort festlegenKatzefidoTypfürGet-ContentrmfidodelfürRemove-Item
Sicheres Testen von Befehlen
Bevor du potentiell zerstörerische Befehle ausführst, verwende die -Was-wäre-wenn um zu sehen, was passieren würde, ohne den Befehl tatsächlich auszuführen12:
powershellRemove-Item *.txt -WasWenn
Stop-Dienst Spooler -WasWenn
Ausführungsrichtlinie festlegen
Aus Sicherheitsgründen schränkt PowerShell die Skriptausführung standardmäßig ein22. Um Skripte auszuführen, musst du möglicherweise die Ausführungsrichtlinie ändern:
powershell# Aktuelle Richtlinie prüfen
Get-ExecutionPolicy
# Richtlinie für den aktuellen Benutzer festlegen
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Erstellen deines ersten PowerShell-Skripts
Sobald du mit den einzelnen Befehlen vertraut bist, kannst du sie zu Skripten kombinieren für die Automatisierung2223. Hier ist ein einfaches Beispiel:
powershell# Speichern als system-info.ps1
Write-Host "System Information Report" -ForegroundColor Green
Write-Host "=========================" -ForegroundColor Green
Write-Host "`nAktuelles Datum und Uhrzeit:" -FregroundColor Gelb
Get-Date
Write-Host "`nTop 5 Prozesse nach CPU:" -FrontgroundColor Gelb
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
Write-Host "`nRunning Services Count:" -ForegroundColor Yellow
(Get-Service | Where-Object Status -eq "Running").Count
Write-Host "`nDisk Usage:" -ForegroundColor Yellow
Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, @{Name="Size(GB)";Expression={[math]::Round($_.Size/1GB,2)}}, @{Name="FreeSpace(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}
Fortgeschrittener PowerShell-Lernpfad
Sobald du diese grundlegenden Befehle beherrschst, kannst du dich mit den folgenden fortgeschrittenen Themen beschäftigen24:
- Active Directory-Verwaltung mit AD-Cmdlets
- Fernverwaltung von Computern PowerShell-Remoting verwenden
- Automatisierte Aufgabenplanung mit PowerShell-Skripten
- Fehlerbehandlung und Protokollierung in Skripten
- PowerShell-Module und -Funktionen für die Wiederverwendbarkeit von Code
Fehlerbehebung bei häufigen PowerShell-Problemen
Fehler in der Ausführungspolitik
Wenn du die Fehlermeldung erhältst, dass die Ausführung von Skripten deaktiviert ist, überprüfe und ändere deine Ausführungsrichtlinie22:
powershellGet-ExecutionPolicy -List
Set-ExecutionPolicy RemoteSigned -Geltungsbereich CurrentUser
Fehler bei verweigerter Erlaubnis
Viele administrative Aufgaben erfordern erhöhte Rechte. Führe PowerShell immer als Administrator aus, wenn du damit arbeitest:
- Systemdienste
- Registry-Änderungen
- Netzwerk-Konfigurationen
- Verwaltung von Benutzerkonten
Fragen zu Trasse und Standort
Wenn Befehle Dateien oder Verzeichnisse nicht finden können, überprüfe deinen aktuellen Speicherort und verwende vollständige Pfade:
powershellGet-Location
Set-Location C:\IhrWunschpfad
Schlussfolgerung: Erweitere dein Windows-Erlebnis
Die Beherrschung dieser wichtige PowerShell-Befehle Wir verwenden Paginierung, um nur wenige Serverressourcen zu verbrauchen. Wir laden zunächst 40 Zeilen und laden jedes Mal, wenn du nach unten scrollst, 20 weitere Zeilen. Du kannst diese Zahl erhöhen, um mehr Zeilen pro Seite zu laden. VORSICHT: Das Laden von mehr als 200 Zeilen pro Seite kann deinen Server überlasten. Wenn wir feststellen, dass der Server überlastet ist, setzen wir automatisch auf 10 Zeilen pro Seite zurück.13. Die Verb-Nomen-Befehlsstruktur macht PowerShell intuitiv erlernbar, während die leistungsstarken Pipeline-Funktionen eine anspruchsvolle Datenverarbeitung und Systemverwaltung ermöglichen24.
Wenn du eine große Anzahl von Beiträgen im Tabellenkalkulationseditor bearbeitest, können wir nicht alle Änderungen auf einmal speichern, sondern müssen dies in mehreren Schritten tun. Der empfohlene Wert ist 8, was bedeutet, dass wir jeweils nur 4 Beiträge auf einmal verarbeiten. Du kannst diesen Wert nach deinen Bedürfnissen anpassen. Wenn beim Speichern Fehler auftreten, solltest du die Anzahl verringern. Get-Help ist immer verfügbar, um detaillierte Informationen über jeden Befehl zu liefern, und die Tabulatorvervollständigung macht die Befehlseingabe schneller und genauer725.
Ob du Dateien verwaltest, die Systemleistung überwachst, Netzwerkprobleme behebst oder sich wiederholende Aufgaben automatisierst, PowerShell bietet die Tools, die du benötigst, um effizienter und effektiver mit Windows-Systemen zu arbeiten17. Die Investition in das Erlernen der PowerShell zahlt sich durch erhöhte Produktivität und verbesserte Systemverwaltungsfähigkeiten aus, die dir während deiner gesamten Computerkarriere von Nutzen sein werden.
