Powershell datei (ps1) aus python starten

  • Hallo,

    ich würde gerne eine ps1 Datei (powershellscript) aus python heraus starten.

    Mein Datei liegt auf C:\test.ps1

    Mein Ansatz:

    Code
    import subprocess
    command = "C:\test.ps1"
    subprocess.Popen(command)
  • Hallo,

    gibt es Probleme mit deinem Befehl oder was möchtest du von uns wissen?

    Was macht die Datei? Wie sieht der restliche Python-Code aus? Muss Python warten bis die *.ps1 Datei ausgeführt wurde oder soll das parallel laufen?

    Ohne genauere Infos, mein Ansatz, ungetestet:

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Das Script kann man nicht direkt als Datei starten, da es keine ausführbare Datei ist. Das Script muss vom Interpreter (PowerShell) ausgeführt werden.

    Es gibt ein recht einfaches Modul: https://poshpy.readthedocs.io/en/latest/usage.html

    poshpy.execute_command: https://github.com/BlueGhostLabs/…shpy/api.py#L17

    poshpy.execute_file: https://github.com/BlueGhostLabs/…shpy/api.py#L50


    Kleines Beispiel inklusive der Decodierung:

    Code
    import poshpy
    
    
    proc = poshpy.execute_command("dir")
    stdout = proc.standard_out.decode()
    print(stdout)

    Leider hat der Maintainer des Packages vergessen das Fenster zu verstecken.

    Wie du dann selbst execute_file implementieren kannst, sollte jetzt klar sein.

    Das einzige, was wahrscheinlich große Probleme verursachen wird, sind Fehler in der Zeichencodierung bzw. eine andere Codierung als utf8.

    Die PowerShell ist etwas komisch, was die Codecs betrifft.

    Sollte es weitere Anforderungen geben, wirst du wahrscheinlich hier was finden: https://pypi.org/project/pypsrp/

    Wahrscheinlich wird man die Remoteshell erst freigeben müssen (Gruppenrichtlinien?), damit man diese auch lokal nutzen kann.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!