PowerShell Scripte per Doppelklick ausführen – Ändern der Standardanwendung mit dem .ps1 Scripte geöffnet werden sollen

Windows PowerShell Script per Doppelklick ausführen
Script: Ausführpfad ändern

Wenn man ein PowerShell Script erstellt und dieses anschließend ausführen möchte, so öffnet sich meistens der Editor. Gerade das möchte man in der Regel aber nicht. Sinnvoller ist es natürlich wenn das Script direkt ausgeführt wird. In einem älteren Artikel habe ich darüber bereits berichtet. Die Lösung dabei war dort eben die Erstellung einer Verknüpfung. Die detaillierte Vorgehensweise könnt ihr hier gerne nachlesen. Letztens habe ich aber ein interessantere Variant entdeckt, welche meiner Meinung nach auch viel einfacher ist.

PS-Icon
PowerShell Icon

Wenn man das Script erstellt hat und es anschließend abspeichert wird es standardmäßig mit dem Editor geöffnet. Klar kann man über das Kontextmenü angeben, dass es mit der PowerShell ausgeführt werden soll. Aber das ist nicht sinnvoll, wenn das Script z.B. über die Aufgabenplanung automatisch gestartet werden soll. Im Prinzip braucht nur das Standardprogramm geändert werden und das geht über die Eigenschaften.

Entsprechend muss man den Standardpfad zur Windows PowerShell angeben. Sofort ersichtlich ist anschließend auch gleich das Icon.

Pfad: C:\Windows\System32\WindowsPowerShell\v1.0\powerShell.exe

Windows PowerShell Script per Doppelklick ausführen
Windows PowerShell Script per Doppelklick ausführen

Übrigens muss man das Ausführen von Scripts erlauben. Sollten dies nicht der Fall sein, wird es auch nicht funktioniert. Geändert werden müssen hierfür die Ausführungsrichtlinien. Genaueres dazu im Artikel: In der Windows PowerShell Ausführungrichtlinien setzen.

Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux-Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte. -> Gern kannst du mich mit einem Kaffee unterstützen!


Kostenlose Befehlsreferenzen und E-Books
(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


2 Gedanken zu „PowerShell Scripte per Doppelklick ausführen – Ändern der Standardanwendung mit dem .ps1 Scripte geöffnet werden sollen“

  1. Hallo,
    es gibt eine weitere Methode, auf einem beliebigen Rechner Powershell-Scripte „ad hoc“ auszuführen: Dazu muss die Extension .PS1 der Datei nur in .CMD umbenannt werden und die erste Zeile aus folgendem Code ergänzt werden:

    # 2>nul & @cls & @copy /y „%~f0“ „%temp%\%~n0.ps1“ >nul & @powershell -Executionpolicy Bypass -NoProfile -NoLogo -File „%temp%\%~n0.ps1“ %* & @pause & @exit /b
    # The real PowerShell code starts here – without any decoding. Note: This must be a batch file type like .CMD or .BAT
    # V1.0 on 2024-11-18 by Tom.Stein@web.de: Public edition
    foreach ($i in $args)
    {
    Write-Host $i
    }

    Erläuterung: Das „#“ zu Beginn der Datei dient dazu, den Rest der Zeile beim erneuten Starten in Powershell zu ignorieren. Batch generiert eine Fehlermeldung, die durch das Umleiten auf das Nul-Device unterdrückt wird – es entstehen trotzdem einige Schmierzeichen, die wahlweise ignoriert oder mit dem Befehl CLS gelöscht werden können. Dann wird die Batch-Datei temporär als PS1-Datei kopiert und mit Powershell neu gestartet. Außer der ersten Zeile ist also kein Batch-Kommando enthalten.

    Mit freundlichen Grüßen
    Tom Stein

  2. Hallo,
    es gibt eine weitere Methode, auf einem beliebigen Rechner Powershell-Scripte „ad hoc“ auszuführen: Dazu muss die Extension .PS1 der Datei nur in .CMD umbenannt werden und die erste Zeile aus folgendem Code ergänzt werden:

    # 2>nul & @cls & @copy /y „%~f0“ „%temp%\%~n0.ps1“ >nul & @powershell -Executionpolicy Bypass -NoProfile -NoLogo -File „%temp%\%~n0.ps1“ %* & @exit /b
    # The real PowerShell code starts here – without any decoding. Note: This must be a batch file type like .CMD or .BAT
    # V1.0 on 2024-11-18 by Tom.Stein@web.de: Public edition
    foreach ($i in $args)
    {
    Write-Host $i
    }

    Erläuterung: Das „#“ zu Beginn der Datei dient dazu, den Rest der Zeile beim erneuten Starten in Powershell zu ignorieren. Batch generiert eine Fehlermeldung, die durch das Umleiten auf das Nul-Device unterdrückt wird – es entstehen trotzdem einige Schmierzeichen, die wahlweise ignoriert oder mit dem Befehl CLS gelöscht werden können. Dann wird die Batch-Datei temporär als PS1-Datei kopiert und mit Powershell neu gestartet. Außer der ersten Zeile ist also kein Batch-Kommando enthalten.

    Mit freundlichen Grüßen
    Tom Stein

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kostenlose E-Books für die IT-Administration

Steigere deine IT-Kompetenzen

Ebook - 10 Schritte nach der Windows Installation
Close the CTA

Windows 11, Windows Server, Docker, PowerShell Referenzen, Batch, Linux Terminal, 

u.v.m.