it-swarm.com.de

Ausführen eines PowerShell-Skripts

Wie führe ich ein PowerShell-Skript aus?

  • Ich habe ein Skript namens myscript.ps1
  • Ich habe alle notwendigen Frameworks installiert
  • Ich habe das Ausführungsrichtlinie gesetzt
  • Ich habe die Anweisungen auf diese MSDN-Hilfeseite befolgt und versuche, sie folgendermaßen auszuführen: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1' (mit oder ohne --noexit)

was genau nichts zurückgibt, außer dass der Dateiname ausgegeben wird.

Kein Fehler, keine Nachricht, nichts. Oh, wenn ich -noexit hinzufüge, passiert dasselbe, aber ich bleibe in PowerShell und muss manuell beendet werden.

Die .ps1-Datei soll ein Programm ausführen und die von der Programmausgabe abhängige Fehlerstufe zurückgeben. Aber ich bin mir ziemlich sicher, dass ich noch nicht mal dort bin.

Was mache ich falsch?

635
Pekka 웃
  1. Starten Sie Windows PowerShell und warten Sie einen Moment, bis die PS-Eingabeaufforderung angezeigt wird
  2. Navigieren Sie zu dem Verzeichnis, in dem sich das Skript befindet

    PS> cd C:\my_path\yada_yada\ (enter)
    
  3. Führen Sie das Skript aus:

    PS> .\run_import_script.ps1 (enter)
    

Was vermisse ich??

Oder: Sie können das PowerShell-Skript von cmd.exe folgendermaßen ausführen:

powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)

demnach blog post hier

Oder Sie können Ihr Powershell-Skript sogar über Ihre C # -App ausführen :-)

Asynchrones Ausführen von PowerShell-Skripten aus Ihrer C # -Anwendung

669
marc_s

Wenn Sie mit PowerShell 2.0 arbeiten, verwenden Sie den Parameter -File von PowerShell.exe, um ein Skript aus einer anderen Umgebung wie cmd.exe aufzurufen, z.

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
204
Keith Hill

Wenn Sie ein Skript ausführen möchten, ohne die Standardrichtlinie für die Skriptausführung zu ändern, können Sie beim Starten den Schalter für die Umgehung verwenden Windows PowerShell .

powershell [-noexit] -executionpolicy bypass -File <Filename>
165
Chingiz Musayev

Art:

powershell -executionpolicy bypass -File .\Test.ps1

HINWEIS: Hier ist Test.ps1 das PowerShell-Skript.

63
Sudheesh

Ich hatte das gleiche Problem, und ich habe versucht und versucht ... Schließlich habe ich verwendet:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

Und setzen Sie diese Zeile in eine Batch-Datei, und das funktioniert.

27
Dennis

Wenn Sie nur PowerShell 1. haben, scheint dies den Trick gut genug zu machen:

powershell -command - < c:\mypath\myscript.ps1

Die Skriptdatei wird an die PowerShell-Befehlszeile weitergeleitet.

22
AndyM

Ziemlich einfach. Klicken Sie mit der rechten Maustaste auf die .ps1-Datei in Windows und klicken Sie im Shell-Menü auf Mit PowerShell ausführen.

11
electronictonic

Verwenden der cmd (BAT) -Datei:

@echo off
color 1F
echo.

C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"

:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL

Wenn Sie als Administrator ausführen müssen :

  1. Erstellen Sie eine Verknüpfung, die auf die Eingabeaufforderung verweist (ich habe sie als administrative Eingabeaufforderung bezeichnet).
  2. Öffnen Sie die Eigenschaften der Verknüpfung und wechseln Sie zur Registerkarte Kompatibilität
  3. Stellen Sie sicher, dass im Abschnitt Berechtigungsstufe das Kontrollkästchen neben "Dieses Programm als Administrator ausführen" aktiviert ist
10
Kiquenet

Eine einfache Möglichkeit ist, PowerShell ISE , ein Skript zu öffnen, ein Skript auszuführen und aufzurufen, zu funktionieren ...

Enter image description here

  • Geben Sie den Pfad des Skripts an, dh die Pfadeinstellung von cmd:

    $> . c:\program file\prog.ps1

  • Führen Sie die Einstiegspunktfunktion von PowerShell aus:

    Zum Beispiel $> add or entry_func or main

7
pkm

Wenn Sie ein PowerShell-Skript mit dem Windows-Taskplaner ausführen möchten, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine Aufgabe

  2. Setzen Sie Program/Script auf Powershell.exe

  3. Setzen Sie Arguments auf -File "C:\xxx.ps1"

Es ist aus einer anderen Antwort, Wie führe ich ein PowerShell-Skript automatisch mit dem Windows-Taskplaner aus?.

6
Gearon

Wenn Ihr Skript die Erweiterung .ps1 hat und Sie sich in einem PowerShell-Fenster befinden, führen Sie einfach ./myscript.ps1 aus (vorausgesetzt, die Datei befindet sich in Ihrem Arbeitsverzeichnis).

Dies trifft auf jeden Fall auf Windows 10 mit PowerShell Version 5.1 zu, und ich glaube, ich habe nichts unternommen, um dies zu ermöglichen.

6
rainabba

Verwenden Sie den Parameter -File vor dem Dateinamen. Die Anführungszeichen lassen PowerShell denken, dass es sich um eine Folge von Befehlen handelt.

1
Engineer