Erste Schritte mit PowerShell
PowerShell ist eine von Microsoft für Windows-Systeme entwickelte Befehlszeilen-Shell + Skriptumgebung, die hauptsächlich für Systemadministration und Automatisierungsaufgaben verwendet wird.
UnterWindows 11Suchen Sie dort einfach direkt im Startmenü nachPowerShellund das war's.

Zu den gängigen Verknüpfungen gehören (für 64-Bit-Systeme):
| Name der Verknüpfung | Beschreibung |
|---|---|
| Windows PowerShell | 64-Bit-Befehlszeilenversion |
| Windows PowerShell ISE | 64-Bit-Grafischer Skript-Editor |
| Windows PowerShell (x86) | 32-Bit-Befehlszeilenversion |
| Windows PowerShell ISE (x86) | 32-Bit-Grafischer Skript-Editor |
⚠️ Hinweis: Windows 11 selbst unterstützt keine 32-Bit-Systeme, enthält aber dennoch die x86-Version von PowerShell für die Kompatibilität mit Legacy-Programmen.
Möglichkeiten zum Starten von PowerShell
Normale Startmethode
Klicken Sie auf die Windows PowerShell-Verknüpfung, um die PowerShell-Konsole zu starten.
Die Titelleiste der PowerShell-Konsole zeigt "Windows PowerShell" an.

Hinweis:Einige Befehle können normal ausgeführt werden, wenn PowerShell als regulärer Benutzer ausgeführt wird, aber PowerShell selbst nimmt nicht an der Benutzerkontensteuerung (UAC) teil und kann den Benutzer nicht zur Erhöhung der Rechte auffordern.
Erläuterung der Benutzerkontensteuerung (UAC)
Was UAC bewirkt:Eine Windows-Sicherheitsfunktion, die verhindert, dass bösartiger Code mit erhöhten Rechten ausgeführt wird.
Berechtigungseinschränkungen für reguläre Benutzer: Wenn Sie als regulärer Benutzer ausgeführt werden, führt der Versuch, Befehle auszuführen, die Administratorrechte erfordern, zu einem Fehler.
Zum Beispiel das Beenden eines Windows-Dienstes:
Stop-Service -Name W32Time
Beispiel für eine Fehlermeldung:
Stop-Service : Service 'Windows Time (W32Time)' cannot be stopped due to
the following error: Cannot open W32Time service on computer '.'.
At line:1 char:1
+ Stop-Service -Name W32Time
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (System.ServiceProcess.ServiceCon
troller:ServiceController) [Stop-Service], ServiceCommandException
+ FullyQualifiedErrorId : CouldNotStopService,Microsoft.PowerShell.Comm
ands.StopServiceCommand
Lösung: Sie müssenPowerShell mit einem Benutzer ausführen, der über lokale Administratorrechte verfügt.Ein zweites Domänenbenutzerkonto ist konfiguriert, nach dem Prinzip der geringsten Rechte; es ist kein Domänenadministrator und hat keine erhöhten Rechte innerhalb der Domäne.
Schritte:
- Klicken Sie mit der rechten Maustaste auf die Windows PowerShell-Verknüpfung
- Wählen Sie "Als Administrator ausführen"

Systemaufforderung:Da Sie derzeit als normaler Benutzer angemeldet sind, werden Sie von Windows aufgefordert, die Anmeldeinformationen eines lokalen Administrators einzugeben.

Erhöhung bestätigen:In der Titelleiste des PowerShell-Fensters mit erhöhten Rechten wird "Administrator: Windows PowerShell" angezeigt.

Ergebnis:Beim Ausführen von Befehlen, die Administratorrechte erfordern, in der PowerShell mit erhöhten Rechten treten keine UAC-Fehler mehr auf.
Prinzip der Rechteerhöhung: PowerShell nur dann mit erhöhten Rechten ausführen, wenn es unbedingt erforderlich ist.
Remotecomputer:Wenn Sie Remotecomputer ansprechen, müssen PowerShell-Rechte nicht erhöht werden. Die Erhöhung betrifft nur lokale Befehle.
Verknüpfungen anheften:Sie können die Verknüpfung für PowerShell oder Windows Terminal an die Taskleiste anheften, um sie schnell zu starten:

Erhöhte PowerShell sicher starten:Wenn Sie PowerShell mit erhöhten Rechten starten müssen, halten Sie die Umschalttaste gedrückt, während Sie mit der rechten Maustaste auf das angeheftete PowerShell-Symbol in der Taskleiste klicken, und wählen Sie "Als Administrator ausführen".

Anleitung zum Ermitteln der PowerShell-Version und der Ausführungsrichtlinie
1. Überprüfen der PowerShell-Version
PowerShell stellt eine automatische Variable bereit$PSVersionTable, die die Version und zugehörige Informationen der aktuellen PowerShell-Sitzung enthält.
$PSVersionTable
Die Ausgabe sieht in etwa wie folgt aus:
Name Value
---- -----
PSVersion 5.1.22621.2428
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.22621.2428
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Versionshinweise
- Windows PowerShell 5.1 ist in derzeit unterstützten Windows-Versionen vorinstalliert und die empfohlene Version.
- PowerShell 7 (plattformübergreifende Version) ist kein Ersatz für Windows PowerShell 5.1, sondern ein anderes Produkt, das parallel dazu installiert wird.
- PowerShell 6 (auch bekannt als PowerShell Core) wird nicht mehr unterstützt.
2. Die Ausführungsrichtlinie verstehen
Die Ausführungsrichtlinie ist ein Sicherheitsfeature von PowerShell, das die Bedingungen steuert, unter denen Skripte ausgeführt werden können, und so die versehentliche Ausführung bösartiger Skripte verhindert.
Hinweis: Die Ausführungsrichtlinie ist keine Sicherheitsgrenze; erfahrene Benutzer können sie umgehen.
Geltungsbereich der Ausführungsrichtlinie
- Sie kann für den lokalen Computer (LocalMachine), den aktuellen Benutzer (CurrentUser) oder die aktuelle Sitzung (Process) festgelegt werden.
- Sie kann auch für Benutzer und Computer über Gruppenrichtlinien verwaltet werden.
Übliche Windows-Standard-Ausführungsrichtlinien
| Betriebssystemversion | Standard-Ausführungsrichtlinie |
|---|---|
| Windows Server 2022 | RemoteSigned |
| Windows Server 2019 | RemoteSigned |
| Windows Server 2016 | RemoteSigned |
| Windows 11 | Restricted |
| Windows 10 | Restricted |
RestrictedGibt an, dass standardmäßig keine Skripts ausgeführt werden dürfen.
3. Abfragen der aktuellen Ausführungsrichtlinie
Aktuelle Richtlinie abfragen:
Get-ExecutionPolicy
Die Ausgabe sieht in etwa wie folgt aus:
Restricted
Ausführungsrichtlinien-Einstellungen für alle Bereiche auflisten:
Get-ExecutionPolicy -List
Die Ausgabe sieht in etwa wie folgt aus:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Undefined
4. Beispiele dafür, wie sich die Ausführungsrichtlinie auf die Skriptausführung auswirkt
Angenommen, es gibt eine SkriptdateiGet-TimeService.ps1; das direkte Ausführen des Befehls in der interaktiven Befehlszeile funktioniert normal:
Get-Service -Name W32Time
Wenn Sie denselben Befehl jedoch aus einem Skript heraus ausführen, gibt PowerShell einen Fehler zurück.
.\Get-TimeService.ps1
Fehlermeldung:
.\Get-TimeService.ps1 : File C:\tmp\Get-TimeService.ps1 cannot be loaded
because running scripts is disabled on this system. For more information,
see about_Execution_Policies at
https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Get-TimeService.ps1
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
5. Ändern der Ausführungsrichtlinie
1. Auf RemoteSigned setzen (empfohlen)
Ermöglicht das Ausführen lokaler Skripte und von vertrauenswürdigen Herausgebern signierter Remote-Skripte.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- Sie müssen PowerShell als Administrator ausführen, um die Ausführungsrichtlinie für den lokalen Computer (LocalMachine) zu ändern.
- Beim Ändern wird eine Bestätigungsaufforderung angezeigt:
Do you want to change the execution policy? [Y] Yes [A] Yes to All ...
2. Nur die Ausführungsrichtlinie des aktuellen Benutzers ändern (keine Administratorrechte erforderlich)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
6. Häufige Fehlermeldungen und Lösungen
Fehler beim Ändern der LocalMachine-Richtlinie ohne erhöhte Administratorrechte:
Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied.
Lösung: Wiederholen Sie den Vorgang, nachdem Sie PowerShell als Administrator ausgeführt haben, oder ändern Sie nur die Richtlinie des aktuellen Benutzers.
7. Überprüfung nach der Änderung
Nachdem die Ausführungsrichtlinie geändert wurde zuRemoteSigned, führen Sie das Skript aus:
.\Get-TimeService.ps1
Ausgabe:
Status Name DisplayName ------ ---- ----------- Running W32Time Windows Time
8. Hinweise
- Skripte sind reine Textdateien mit der Erweiterung
.ps1。
- Es wird empfohlen,Visual Studio Codeoder einen Texteditor zum Schreiben von Skripten zu verwenden.
- Bevor Sie die Ausführungsrichtlinie ändern, lesen Sie bitte die offizielle Dokumentation
about_Execution_Policiesum die damit verbundenen Sicherheitsrisiken zu verstehen.
Andere Erweiterungen
.ps1。about_Execution_Policiesum die damit verbundenen Sicherheitsrisiken zu verstehen.