PowerShell 7 Grundkurs 001: Hello World und erster Start
Worum geht es in diesem Teil?
In diesem ersten Teil des PowerShell-7-Grundkurses erstellen wir unser erstes kleines PowerShell-Skript und starten es über eine Starter-Batchdatei.
Das PowerShell-Skript gibt eine einfache Hello-World-Meldung aus. Dadurch können wir gefahrlos testen, ob PowerShell 7 installiert ist, ob das Skript korrekt gespeichert wurde und ob die Starterdatei das PowerShell-Skript richtig aufruft.
Beispielausgabe:
Hello World von PowerShell 7!
Wenn du diesen Text siehst, funktioniert dein PowerShell-7-Skript.
Hallo Batch von Powershell 7!
Dieser Teil ist der Einstieg in den PowerShell-7-Bereich der Windows-Automatisierungsreihe.
Warum PowerShell 7?
Windows enthält meistens bereits eine ältere PowerShell-Version. Diese heißt häufig Windows PowerShell und ist oft Version 5.1.
Für diesen Kurs verwenden wir aber bewusst PowerShell 7. PowerShell 7 ist die moderne PowerShell-Version und wird mit dem Befehl pwsh gestartet.
Wichtig ist die Unterscheidung:
powershell.exe = Windows PowerShell 5.1
pwsh.exe = PowerShell 7
PowerShell-Skripte haben in beiden Fällen normalerweise die gleiche Dateiendung:
.ps1
Die Endung .ps1 sagt also noch nicht automatisch, ob das Skript mit Windows PowerShell 5.1 oder mit PowerShell 7 ausgeführt wird. Entscheidend ist, welches Programm das Skript startet.
PowerShell 7 installieren
Für PowerShell 7 gibt es mehrere Installationsmöglichkeiten.
Typische Varianten sind:
Installation über winget
Installation über den Microsoft Store
Installation über einen MSI-Installer
Installation über ein ZIP-Paket
In diesem Kurs verwenden wir die einfache Installation über winget.
Dazu kann man die Eingabeaufforderung oder das Windows Terminal öffnen und folgenden Befehl ausführen:
winget install --id Microsoft.PowerShell --source winget
Nach der Installation kann PowerShell 7 über das Startmenü geöffnet werden. Alternativ kann man in der Eingabeaufforderung prüfen, ob PowerShell 7 verfügbar ist:
pwsh --version
Oder man startet PowerShell 7 mit:
pwsh
und prüft innerhalb von PowerShell die Version mit:
$PSVersionTable.PSVersion
Hinweis zur Kursreihe
Diese PowerShell-7-Reihe ist Teil einer größeren Windows-Automatisierungsreihe. Viele Aufgaben werden in mehreren Sprachen umgesetzt, damit man die unterschiedlichen Lösungswege vergleichen kann.
Geplant sind Varianten mit:
Batch
PowerShell 7
Python
Die Aufgaben bleiben ähnlich, aber die Umsetzung unterscheidet sich je nach Sprache.
Dadurch kann man sehr gut vergleichen:
Wie löst Batch die Aufgabe?
Wie löst PowerShell 7 die Aufgabe?
Wie löst Python die Aufgabe?
Downloads zu diesem Teil
Für diesen Teil gibt es die PowerShell-Datei und eine Starter-Batchdatei.
Dateien für PowerShell 7 Grundkurs Teil 001:
Download PowerShell 7 Grundkurs: 001_Hello_World als ZIP Datei.
Entpacken nach:
C:\TOPTORIALS_CODE\010_PowerShell_7_Grundkurs
Falls der Ordner noch nicht existiert, lege ihn vorher im Explorer an.
Nach dem Entpacken entsteht dort:
C:\TOPTORIALS_CODE\010_PowerShell_7_Grundkurs\001_Hello_World
Testumgebung zum Mitmachen
Für diese Tutorialreihe gibt es zusätzlich eine vorbereitete Testumgebung. Für dieses erste Hello-World-Skript ist sie noch nicht unbedingt nötig, weil hier keine Dateien verändert werden. Trotzdem kann es sinnvoll sein, die Testumgebung direkt am Anfang anzulegen, damit alle weiteren Teile der Reihe in derselben Ordnerstruktur getestet werden können.
Die Testumgebung enthält vorbereitete Ordner und Beispieldateien für die späteren Teile des PowerShell-7-Grundkurses. Dadurch kannst du die Skripte gefahrlos ausprobieren, ohne eigene wichtige Dateien verwenden zu müssen.
Die Testumgebung ist sprachübergreifend aufgebaut. Das bedeutet: Die gleiche Grundstruktur kann auch für die passenden Batch– und Python-Versionen verwendet werden. Für den PowerShell-7-Grundkurs arbeiten wir mit einer eigenen Kopie des Testdatenordners.
Testumgebung für Windows-Automatisierung:
Download TOPTORIALS_Testdaten_Windows_Automatisierung_V001.zip
Entpacken nach:
C:\TOPTORIALS_CODE\1000_TESTBEREICH
Falls der Ordner C:\TOPTORIALS_CODE\1000_TESTBEREICH noch nicht existiert, lege ihn vorher im Explorer an.
Nach dem Entpacken entsteht zunächst dieser Ordner:
C:\TOPTORIALS_CODE\1000_TESTBEREICH\TOPTORIALS_Testdaten_Windows_Automatisierung_V001
Für den PowerShell-7-Grundkurs benenne den entpackten Ordner anschließend um in:
TOPTORIALS_Testdaten_Windows_Automatisierung_PowerShell_7_V001
Danach sieht der Pfad zum Testdatenordner für den PowerShell-7-Grundkurs zum Beispiel so aus:
C:\TOPTORIALS_CODE\1000_TESTBEREICH\TOPTORIALS_Testdaten_Windows_Automatisierung_PowerShell_7_V001
Für diesen ersten Teil brauchst du diesen Testdatenordner noch nicht zwingend. Ab den nächsten Teilen wird er aber sehr praktisch, weil dort Ordner erstellt, Dateilisten erzeugt, Dateien sortiert, umbenannt, gesichert oder verglichen werden.
Wichtiger Hinweis:
Die Skripte werden auf eigene Verantwortung verwendet. Teste Skripte zuerst in einer separaten Testumgebung und nicht direkt mit wichtigen Originaldateien.
Dieses erste Skript ist ungefährlich, weil es nur Text ausgibt. Trotzdem ist es sinnvoll, von Anfang an eine sichere Arbeitsweise zu lernen.
Enthaltene Dateien
Zu diesem Teil gehören zwei Dateien:
001_hello_world.ps1
001_hello_world_starter_batch.bat
Welche Datei macht was?
PowerShell-Datei
Die Datei:
001_hello_world.ps1
enthält das eigentliche PowerShell-Skript.
Dort steht die eigentliche Ausgabe:
Hello World von PowerShell 7!
Starter-Batchdatei
Die Datei:
001_hello_world_starter_batch.bat
startet PowerShell 7 mit pwsh und führt die Datei 001_hello_world.ps1 aus.
Diese Starter-Batchdatei ist besonders praktisch, weil man sie einfach per Doppelklick starten kann.
Warum benutzen wir eine Starter-Batchdatei?
Bei Batchdateien ist der Start sehr einfach. Eine .bat-Datei kann man meistens direkt per Doppelklick ausführen.
Bei PowerShell-Skripten ist das anders. Eine .ps1-Datei wird je nach Windows-Einstellung eventuell im Editor geöffnet, nicht direkt gestartet oder durch Ausführungsrichtlinien blockiert.
Deshalb verwenden wir hier eine kleine Starter-Batchdatei.
Die Idee ist:
Die PowerShell-Logik steht in der .ps1-Datei.
Die Batchdatei startet nur PowerShell 7 und ruft dieses Skript auf.
Das hat mehrere Vorteile:
PowerShell 7 wird gezielt mit pwsh gestartet.
Das passende .ps1-Skript wird automatisch gefunden.
Der Start ist für Einsteiger einfacher.
Fehlermeldungen verschwinden nicht sofort.
Der Aufbau bleibt für spätere Kursteile einheitlich.
Der komplette Code der PowerShell-Datei
Die Datei heißt:
001_hello_world.ps1
# ============================================================
# TOPTORIALS OFFICE - PowerShell 7 Grundkurs
# Script: 001_hello_world.ps1
# Beschreibung: Gibt eine einfache Hello-World-Meldung aus.
# Autor: Chris
# YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
# Webseite: https://www.toptorials.com
# Version: 1.0
# Stand: 2026-07-18
#
# ============================================================
Write-Host ""
Write-Host "Hello World von PowerShell 7!"
Write-Host ""
Write-Host "Wenn du diesen Text siehst, funktioniert dein PowerShell-7-Skript."
Write-Host ""
Read-Host "Drücke Enter zum Beenden"
Code der PowerShell-Datei erklärt
Kommentarblock
In PowerShell beginnen Kommentare mit einer Raute:
#
Der obere Bereich ist ein Kommentarblock. Er wird nicht ausgeführt, sondern enthält Informationen zum Skript.
Zum Beispiel:
# TOPTORIALS OFFICE - PowerShell 7 Grundkurs
# Script: 001_hello_world.ps1
# Beschreibung: Gibt eine einfache Hello-World-Meldung aus.
Solche Informationen sind sehr hilfreich, wenn man später viele Skripte gesammelt hat und schnell erkennen möchte, wofür eine Datei gedacht ist.
Text ausgeben mit Write-Host
Mit Write-Host geben wir Text im PowerShell-Fenster aus.
Beispiel:
Write-Host "Hello World von PowerShell 7!"
Das entspricht vom Grundgedanken her ungefähr dem echo-Befehl aus Batch.
Leere Zeilen können wir zum Beispiel so ausgeben:
Write-Host ""
Auf Eingabe warten mit Read-Host
Am Ende steht:
Read-Host "Drücke Enter zum Beenden"
Damit wartet das Skript auf eine Eingabe.
Das ist ähnlich wie pause in Batch. Der Vorteil ist, dass das PowerShell-Fenster nicht sofort geschlossen wird und man die Ausgabe in Ruhe lesen kann.
Groß- und Kleinschreibung
PowerShell-Befehle sind normalerweise nicht empfindlich bei Groß- und Kleinschreibung.
Diese Varianten funktionieren also grundsätzlich:
Write-Host
write-host
WRITE-HOST
Für den Kurs verwenden wir aber die übliche Schreibweise:
Write-Host
Read-Host
Das ist besser lesbar und entspricht dem typischen PowerShell-Stil.
Der komplette Code der Starter-Batchdatei
Die Datei heißt:
001_hello_world_starter_batch.bat
@echo off
REM ============================================================
REM TOPTORIALS OFFICE - PowerShell 7 Grundkurs
REM Script: 001_hello_world_starter_batch.bat
REM Beschreibung: Startet das PowerShell-7-Skript 001_hello_world.ps1.
REM Autor: Chris
REM YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
REM Webseite: https://www.toptorials.com
REM Version: 1.0
REM Stand: 2026-07-18
REM
REM ============================================================
pwsh -ExecutionPolicy Bypass -File "%~dp0\001_hello_world.ps1"
Code der Starter-Batchdatei erklärt
@echo off
@echo off
Diese Zeile verhindert, dass die Befehle der Batchdatei selbst im Fenster mit ausgegeben werden.
Das kennen wir bereits aus dem Batch-Grundkurs.
REM-Kommentarblock
In Batch werden Kommentare häufig mit REM geschrieben.
Der Kommentarblock enthält Informationen zur Datei, zum Autor, zur Version und zur Beschreibung.
PowerShell 7 mit pwsh starten
Der wichtigste Befehl ist:
pwsh -ExecutionPolicy Bypass -File "%~dp0\001_hello_world.ps1"
Dieser Befehl startet PowerShell 7 und führt unser PowerShell-Skript aus.
Die Bestandteile:
pwsh
= startet PowerShell 7
-ExecutionPolicy Bypass
= erlaubt die Ausführung für diesen Startvorgang
-File
= führt die angegebene .ps1-Datei aus
"%~dp0\001_hello_world.ps1"
= Pfad zur PowerShell-Datei im gleichen Ordner wie die Starter-Batchdatei
Was bedeutet %~dp0?
%~dp0
steht in einer Batchdatei für den Ordner, in dem die Batchdatei selbst liegt.
Dadurch kann die Starter-Batchdatei das PowerShell-Skript zuverlässig finden, auch wenn der komplette Ordner später an eine andere Stelle kopiert wird.
Beispiel:
C:\TOPTORIALS_CODE\010_PowerShell_7_Grundkurs\001_Hello_World\
Dann wird daraus:
C:\TOPTORIALS_CODE\010_PowerShell_7_Grundkurs\001_Hello_World\001_hello_world.ps1
Warum kein pause in der Starter-Batchdatei?
Bei diesem Beispiel wartet nicht die Batchdatei, sondern das PowerShell-Skript selbst.
Das passiert durch:
Read-Host "Drücke Enter zum Beenden"
Dadurch bleibt die Wartefunktion vollständig in PowerShell 7.
Das ist für diese Kursreihe sinnvoll, weil wir die Aufgabe möglichst in PowerShell nachbilden möchten.
Alternative: pause in PowerShell
In PowerShell funktioniert häufig auch:
pause
Für den Kurs verwenden wir aber:
Read-Host "Drücke Enter zum Beenden"
Das ist etwas klarer, weil man direkt sieht, dass eine Eingabe vom Benutzer erwartet wird.
PowerShell 7 oder Windows PowerShell?
PowerShell-Skripte haben normalerweise die Endung:
.ps1
Diese Endung gilt sowohl für Windows PowerShell als auch für PowerShell 7.
Der Unterschied liegt im Startprogramm:
powershell.exe = Windows PowerShell 5.1
pwsh.exe = PowerShell 7
Unsere Starter-Batchdatei verwendet:
pwsh
Damit wird bewusst PowerShell 7 gestartet.
Wenn man stattdessen die ältere Windows PowerShell starten wollte, würde der Befehl eher so aussehen:
powershell -ExecutionPolicy Bypass -File "%~dp0\001_hello_world.ps1"
Für diesen Kurs verwenden wir aber PowerShell 7.
Typische Fehler
PowerShell 7 wurde nicht gefunden
Wenn beim Starten der Batchdatei eine Meldung erscheint, dass pwsh nicht gefunden wurde, ist PowerShell 7 wahrscheinlich noch nicht installiert oder der Befehl ist nicht im Systempfad verfügbar.
Prüfe in der Eingabeaufforderung:
pwsh --version
Wenn das nicht funktioniert, installiere PowerShell 7 zuerst.
Die Datei wird nur im Editor geöffnet
Wenn eine .ps1-Datei beim Doppelklick im Editor geöffnet wird, ist das normal und je nach Windows-Einstellung sogar typisch.
Für diesen Kurs wird deshalb die Starter-Batchdatei verwendet.
Die Datei heißt versehentlich .ps1.txt
Wenn die Datei im Editor gespeichert wurde, kann es passieren, dass sie versehentlich so heißt:
001_hello_world.ps1.txt
Richtig ist:
001_hello_world.ps1
Blende im Explorer am besten die Dateinamenerweiterungen ein, damit du die echte Endung sehen kannst.
Execution Policy verhindert den Start
PowerShell verwendet Ausführungsrichtlinien. Diese können verhindern, dass Skripte direkt gestartet werden.
Unsere Starter-Batchdatei verwendet:
-ExecutionPolicy Bypass
Damit wird die Ausführung für diesen Startvorgang erlaubt.
Umlaute sehen falsch aus
Wenn Umlaute falsch angezeigt werden, kann das mit der Kodierung der Datei oder mit der verwendeten Konsole zusammenhängen.
Für diese Kursreihe empfiehlt es sich, die Dateien als UTF-8 zu speichern.
Was haben wir gelernt?
In diesem Teil wurden mehrere Grundlagen gezeigt:
PowerShell 7 wird mit pwsh gestartet.
PowerShell-Skripte haben normalerweise die Endung .ps1.
Write-Host gibt Text im PowerShell-Fenster aus.
Read-Host kann auf eine Eingabe warten.
Eine Starter-Batchdatei kann PowerShell 7 gezielt starten.
%~dp0 verweist auf den Ordner der Starter-Batchdatei.
-File führt eine PowerShell-Datei aus.
-ExecutionPolicy Bypass erlaubt die Ausführung für diesen Startvorgang.
powershell.exe und pwsh.exe sind nicht dasselbe.
Damit ist die Grundlage für die kommenden PowerShell-7-Teile gelegt.
In den nächsten Teilen erstellen wir mit PowerShell 7 praktische Windows-Automatisierungen und vergleichen die Umsetzung später mit den passenden Batch- und Python-Versionen.
Video zu diesem Tutorial:
Das könnte Dich auch interessieren
Keine Einträge gefunden


