Wie man ein PowerShell-Skript aus einer Batch-Datei ausführt

  1. Verwenden Sie den -File-Parameter, um ein PowerShell-Skript aus einer Batch-Datei auszuführen
  2. Verwenden Sie RemoteSigned als -ExecutionPolicy, um ein PowerShell-Skript aus einer Batch-Datei auszuführen
  3. Verwenden Sie den Bypass-Schalter, um ein PowerShell-Skript aus einer Batch-Datei auszuführen
  4. Führen Sie ein PowerShell-Skript aus einer Batch-Datei aus, indem Sie PowerShell als Administrator öffnen
  5. Fazit
Wie man ein PowerShell-Skript aus einer Batch-Datei ausführt

Ein PowerShell-Skript ist eine Textdatei mit der Erweiterung .ps1, die eine Sammlung von Befehlen enthält. PowerShell führt diese Befehle nacheinander aus.

Eine Batch-Datei ist eine Textdatei mit der Erweiterung .bat. Sie enthält ebenfalls eine Sammlung von Befehlen, die nacheinander ausgeführt werden.

Die Befehle können durch das Öffnen der .bat-Datei ausgeführt werden. Dieses Tutorial wird Ihnen beibringen, wie Sie ein PowerShell-Skript aus einer Batch-Datei ausführen.

Wir haben ein PowerShell-Skript, myscript.ps1, erstellt, das den folgenden Befehl enthält. Der Befehl pause stoppt die Ausführung einer Batch-Datei, bis Sie die Enter-Taste drücken.

Write-Host "Your script is executed successfully."
Pause

Verwenden Sie den -File-Parameter, um ein PowerShell-Skript aus einer Batch-Datei auszuführen

Ein PowerShell-Skript aus einer Batch-Datei auszuführen, kann eine nützliche Technik zur Automatisierung von Aufgaben in Windows-Umgebungen sein. Die Methode mit dem -File-Parameter ermöglicht eine nahtlose Integration von PowerShell-Skripten in Batch-Datei-Workflows.

Der folgende Befehl wird in der bat-Datei verwendet, um ein PowerShell-Skript auszuführen.

@echo off
powershell -File script.ps1

In diesem Code-Snippet verwenden wir zuerst @echo off, um die Anzeige der ausgeführten Befehle zu unterdrücken, sodass nur die Ausgabe des Skripts für den Benutzer sichtbar ist. Dann verwenden wir den Befehl powershell mit dem -File-Parameter, um ein PowerShell-Skript mit dem Namen script.ps1 auszuführen.

Dieser Befehl startet eine PowerShell-Sitzung und gibt die zu ausführende Skriptdatei an. Durch die Kombination dieser Befehle können wir ein PowerShell-Skript nahtlos aus einer Batch-Datei ausführen und so den Prozess der Ausführung von PowerShell-Befehlen in einer Batch-Datei-Umgebung rationalisieren.

Ausgabe:

Führen Sie ein PowerShell-Skript aus einer Batch-Datei aus - Ausgabe 1

Verwenden Sie RemoteSigned als -ExecutionPolicy, um ein PowerShell-Skript aus einer Batch-Datei auszuführen

PowerShell hat verschiedene Ausführungsrichtlinien, die bestimmen, welche Skripte ausgeführt werden können und von wo. Eine Möglichkeit, diese Einschränkungen zu umgehen, besteht darin, den Parameter -ExecutionPolicy mit dem Wert RemoteSigned anzugeben.

Diese Ausführungsrichtlinie ermöglicht es, lokal erstellte Skripte ohne digitale Signatur auszuführen, während Skripte, die aus dem Internet heruntergeladen werden, von einem vertrauenswürdigen Herausgeber signiert sein müssen.

@echo off
powershell -ExecutionPolicy RemoteSigned -File script.ps1

Im bereitgestellten Code-Snippet wird powershell -ExecutionPolicy RemoteSigned -File script.ps1 verwendet, um das PowerShell-Skript mit dem Namen script.ps1, das sich im aktuellen Arbeitsverzeichnis befindet, auszuführen. Durch die Angabe des Parameters -ExecutionPolicy als RemoteSigned stellen wir sicher, dass lokal erstellte Skripte ohne digitale Signatur ausgeführt werden können, während Skripte, die aus dem Internet heruntergeladen werden, von einem vertrauenswürdigen Herausgeber signiert sein müssen.

Ausgabe:

Führen Sie ein PowerShell-Skript aus einer Batch-Datei aus - Ausgabe 2

Verwenden Sie den Bypass-Schalter, um ein PowerShell-Skript aus einer Batch-Datei auszuführen

Um Einschränkungen zu umgehen und das Skript ohne die durch die Ausführungsrichtlinie auferlegten Beschränkungen auszuführen, können wir den Parameter -ExecutionPolicy mit dem Wert Bypass verwenden. Diese Methode bietet einen einfachen Weg, um PowerShell-Skripte aus einer Batch-Datei auszuführen, während alle Einschränkungen der Ausführungsrichtlinie umgangen werden.

@echo off
powershell -ExecutionPolicy Bypass -File C:\path\script.ps1

Im bereitgestellten Code-Snippet wird powershell -ExecutionPolicy Bypass -File C:\path\script.ps1 verwendet, um das PowerShell-Skript mit dem Namen script.ps1, das im Verzeichnis C:\path\scripts gespeichert ist, auszuführen. Durch das Setzen der Ausführungsrichtlinie auf Bypass weisen wir PowerShell an, alle Einschränkungen der Ausführungsrichtlinie zu ignorieren, sodass das Skript ohne Einschränkungen ausgeführt werden kann.

Ausgabe:

Führen Sie ein PowerShell-Skript aus einer Batch-Datei aus - Ausgabe 3

Sie können auch den folgenden Befehl ausführen.

@echo off
powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\path\script.ps1'"

In diesem bereitgestellten Befehl verwenden wir -ExecutionPolicy Bypass, um PowerShell anzuweisen, alle Einschränkungen der Ausführungsrichtlinie zu ignorieren, damit das Skript ohne Einschränkungen ausgeführt werden kann. Darüber hinaus sorgt der Parameter -NoProfile dafür, dass das PowerShell-Profil des Benutzers nicht geladen wird, was hilft, eine saubere Ausführungsumgebung für das Skript aufrechtzuerhalten.

Ausgabe:

Führen Sie ein PowerShell-Skript aus einer Batch-Datei aus - Ausgabe 4

Führen Sie ein PowerShell-Skript aus einer Batch-Datei aus, indem Sie PowerShell als Administrator öffnen

Ein PowerShell-Skript aus einer Batch-Datei mit erhöhten Rechten auszuführen, indem Sie PowerShell als Administrator öffnen, ist eine entscheidende Methode, um Skripte auszuführen, die administrative Berechtigungen erfordern. Dieser Ansatz stellt sicher, dass die PowerShell-Sitzung die erforderlichen Berechtigungen hat, um administrative Aufgaben durchzuführen, wie z. B. System Einstellungen zu ändern oder auf eingeschränkte Ressourcen zuzugreifen.

@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1'"

In diesem Code-Snippet verwenden wir powershell.exe, um eine PowerShell-Sitzung mit erhöhten Rechten zu starten. Der Parameter -Verb RunAs im Cmdlet Start-Process stellt sicher, dass PowerShell mit administrativen Berechtigungen geöffnet wird.

Durch das Übergeben der erforderlichen Argumente (-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1) an die neue PowerShell-Sitzung ermöglichen wir die Ausführung des angegebenen Skripts (script.ps1) mit erhöhten Berechtigungen.

Ausgabe:

Führen Sie ein PowerShell-Skript aus einer Batch-Datei aus - Ausgabe 5

Fazit

In diesem Artikel haben wir verschiedene Methoden untersucht, um ein PowerShell-Skript aus einer Batch-Datei auszuführen. Wir haben gelernt, wie man den -File-Parameter verwendet, um ein Skript direkt auszuführen, sowie wie man Ausführungsrichtlinienbeschränkungen mithilfe der Parameter RemoteSigned und Bypass umgeht.

Darüber hinaus haben wir besprochen, wie man PowerShell als Administrator öffnet, um Skripte mit erhöhten Rechten auszuführen. Jede Methode bietet einen einzigartigen Ansatz zur Ausführung von PowerShell-Skripten aus Batch-Dateien und bietet Flexibilität und Kontrolle über die Ausführungsumgebung.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Verwandter Artikel - PowerShell Script