PowerShell ist ein leistungsstarkes Tool von Microsoft, das zur Automatisierung von Aufgaben und Verwaltung von Windows-Umgebungen verwendet wird. Es basiert auf der .NET-Plattform und kombiniert eine Kommandozeilen-Shell mit einer Skriptsprache. In diesem Tutorial wirst du die Grundlagen von PowerShell und die wichtigsten Befehle kennenlernen, um loszulegen.
1. Was ist PowerShell?
- Shell: Eine Kommandozeilenschnittstelle (CLI) für die direkte Interaktion mit dem Betriebssystem.
- Skriptsprache: PowerShell unterstützt eine vollwertige Skriptsprache, die auf der .NET-Architektur basiert, was eine weitreichende Steuerung von Windows- und Server-Umgebungen ermöglicht.
2. PowerShell starten
- Aufrufen: Drücke
Win + X
und wähle PowerShell oder öffne es über die Suchleiste mit dem Befehlpowershell
. - Administratorrechte: Um bestimmte Befehle auszuführen, musst du PowerShell als Administrator ausführen. Dazu klickst du mit der rechten Maustaste auf PowerShell und wählst „Als Administrator ausführen“.
3. Grundlegende PowerShell-Befehle
3.1 Hilfe abrufen: Get-Help
PowerShell verfügt über eine integrierte Hilfe, ähnlich wie man-Seiten in Linux.
Get-Help Befehl
Beispiel: Hilfe zum Get-Process
-Befehl anzeigen:
Get-Help Get-Process
Falls die ausführliche Dokumentation nicht angezeigt wird, kannst du die neueste Hilfe herunterladen mit:
Update-Help
3.2 Liste von Befehlen anzeigen: Get-Command
Um alle verfügbaren PowerShell-Cmdlets (Befehle) zu sehen, verwende:
Get-Command
Du kannst auch bestimmte Cmdlets basierend auf Stichwörtern filtern:
Get-Command *process*
3.3 Informationen über Objekte: Get-Member
PowerShell basiert auf Objekten. Mit Get-Member
kannst du die Eigenschaften und Methoden eines Objekts anzeigen.
Get-Process | Get-Member
4. Arbeiten mit Cmdlets
4.1 Prozesse anzeigen: Get-Process
Um alle laufenden Prozesse auf deinem Computer zu sehen, benutze:
Get-Process
Du kannst auch nach einem bestimmten Prozess filtern, z.B. nach Notepad:
Get-Process notepad
4.2 Dienste verwalten: Get-Service
Zeigt alle Dienste auf dem System an:
Get-Service
Um einen bestimmten Dienst anzuzeigen:
Get-Service -Name "wuauserv" # Windows Update-Dienst
4.3 Verzeichnisse durchsuchen: Get-ChildItem
(alias ls
, dir
)
Um den Inhalt eines Verzeichnisses anzuzeigen, kannst du den folgenden Befehl verwenden:
Get-ChildItem
Für detailliertere Informationen kannst du den -Recurse
Parameter hinzufügen, um Unterverzeichnisse einzuschließen:
Get-ChildItem -Recurse
4.4 Dateien kopieren: Copy-Item
Um eine Datei zu kopieren, verwendet man:
Copy-Item -Path "C:\Quelle\datei.txt" -Destination "C:\Ziel\datei.txt"
4.5 Dateien verschieben: Move-Item
Dateien können mit folgendem Befehl verschoben werden:
Move-Item -Path "C:\Quelle\datei.txt" -Destination "C:\Ziel"
4.6 Dateien löschen: Remove-Item
Lösche eine Datei oder ein Verzeichnis:
Remove-Item -Path "C:\Quelle\datei.txt"
5. Variablen verwenden
PowerShell ermöglicht die Arbeit mit Variablen, um Werte zu speichern und wiederzuverwenden.
5.1 Variable zuweisen
$zahl = 10
$text = "Hallo, PowerShell!"
5.2 Variable ausgeben
Verwende den Namen der Variable, um sie auszugeben:
$zahl
$text
5.3 Variablen in Befehlen verwenden
Copy-Item -Path "C:\$text.txt" -Destination "C:\Backup\"
6. Pipelines
PowerShell verwendet Pipelines (|
), um die Ausgabe eines Befehls als Eingabe für einen anderen Befehl zu verwenden.
6.1 Prozesse filtern und stoppen
Beispiel: Alle Prozesse mit Namen „notepad“ beenden:
Get-Process notepad | Stop-Process
6.2 Sortieren und Filtern
Prozesse nach CPU-Auslastung sortieren:
Get-Process | Sort-Object CPU -Descending
7. Schleifen und Bedingungen
7.1 If-Bedingung
$zahl = 5
if ($zahl -eq 5) {
Write-Output "Die Zahl ist 5"
} else {
Write-Output "Die Zahl ist nicht 5"
}
7.2 ForEach-Schleife
Eine ForEach-Schleife wird verwendet, um über eine Sammlung von Elementen zu iterieren:
$prozesse = Get-Process
foreach ($prozess in $prozesse) {
Write-Output $prozess.Name
}
8. PowerShell-Skripte
Ein PowerShell-Skript ist einfach eine Datei mit der Endung .ps1
, die PowerShell-Befehle enthält. Zum Beispiel:
Inhalt der Datei Beispiel.ps1
:
Write-Host "Dies ist ein einfaches PowerShell-Skript"
$prozesse = Get-Process
foreach ($prozess in $prozesse) {
Write-Output $prozess.Name
}
Ausführung eines Skripts:
.\Beispiel.ps1
Hinweis: Möglicherweise musst du die Ausführungsrichtlinie ändern, um Skripte auszuführen:
Set-ExecutionPolicy RemoteSigned
9. Wichtige Cmdlets im Überblick
Get-Help
: Hilfetext anzeigenGet-Command
: Liste aller Cmdlets anzeigenGet-Service
: Dienste anzeigenStart-Service
/Stop-Service
: Dienste starten/stoppenGet-Process
: Prozesse anzeigenStop-Process
: Prozess beendenSet-ExecutionPolicy
: Ausführungsrichtlinie für Skripte festlegenNew-Item
: Datei oder Verzeichnis erstellenCopy-Item
: Datei/Verzeichnis kopierenMove-Item
: Datei/Verzeichnis verschiebenRemove-Item
: Datei/Verzeichnis löschen
Fazit
PowerShell bietet eine Vielzahl von Möglichkeiten, um tägliche Aufgaben zu automatisieren, Dateien zu verwalten, Systemprozesse zu steuern und mehr. Mit diesem Grundlagen-Tutorial solltest du nun einen Überblick über die wichtigsten PowerShell-Befehle haben und in der Lage sein, einfache Skripte zu schreiben.
Mit weiterem Üben kannst du deine PowerShell-Kenntnisse vertiefen und komplexere Aufgaben automatisieren.