istike2
Goto Top

Powershell als Python-Funktion - wie ausführen?

Hallo Zusammen,

ich bin gerade dabei eine kleine Python-GUI mit TKINTER zusammenzubasteln.

Das Fenster wird unterschiedlich Tabs jeweils für eine Aufgabe haben. Ob diese mit Python selbst oder mit Powershell ausgeführt wird, hängt von der Aufgabe ab:

Z. B
  • SharePoint User auflisten würde ich mit Powershell machen.
  • JIRA REST API zugreifen wäre aber wohl mit Python effizienter.

Aktuell teste ich diese Funktion, die Powershell Scripte inkl. Parameter ausführen kann:

(Ich habe die Funktion nicht selbt geschrieben!
Die Script wurde in diesem Thread empfohlen:
https://stackoverflow.com/questions/57188398/running-powershell-script-f ..)

import subprocess  # IMPORT FOR SUB PROCESS . RUN METHOD

POWERSHELL_PATH = "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe"  # POWERSHELL EXE PATH  
ps_script_path = "C:\Users\mr3968\PycharmProjects\SystemScriptWithGUI\Powershell_Scripts\browser.ps1"  # YOUR POWERSHELL FILE PATH  

class Utility:  # SHARED CLASS TO USE IN OUR PROJECT

    @staticmethod    # STATIC METHOD DEFINITION
    def openbrowser(script_path, *params):  # SCRIPT PATH = POWERSHELL SCRIPT PATH,  PARAM = POWERSHELL SCRIPT PARAMETERS ( IF ANY )

        commandline_options = [POWERSHELL_PATH, '-ExecutionPolicy', 'Unrestricted', ps_script_path]  # ADD POWERSHELL EXE AND EXECUTION POLICY TO COMMAND VARIABLE  
        for param in params:  # LOOP FOR EACH PARAMETER FROM ARRAY
            commandline_options.append("'" + param + "'")  # APPEND FOR YOUR POWERSHELL SCRIPT  

        process_result = subprocess.run(commandline_options, stdout = subprocess.PIPE, stderr = subprocess.PIPE, universal_newlines = True)  # CALL PROCESS

        print(process_result.returncode)  # PRINT RETURN CODE OF PROCESS  0 = SUCCESS, NON-ZERO = FAIL
        print(process_result.stdout)      # PRINT STANDARD OUTPUT FROM POWERSHELL
        print(process_result.stderr)      # PRINT STANDARD ERROR FROM POWERSHELL ( IF ANY OTHERWISE ITS NULL|NONE )

        if process_result.returncode == 0:  # COMPARING RESULT
            Message = "Success !"  
        else:
            Message = "Error Occurred !"  

        return Message  # RETURN MESSAGE


Mein aktuelles Problem ist die folgende Fehlermeldung /zum Zeile 4/

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape  

Hat hier der Variable "ps_script_path" den falschen Typ?

Vielen Dank für eure Meinungen.

Gr. I.

Content-ID: 1592714862

Url: https://administrator.de/contentid/1592714862

Ausgedruckt am: 21.11.2024 um 19:11 Uhr

149569
Lösung 149569 06.12.2021 aktualisiert um 13:12:58 Uhr
Goto Top
Stichwort "Backslashes" und Escaping-Sequenzen innerhalb von normalen Anführungszeichen face-wink. Nun sollte es "Klingelingeling" machen face-big-smile.
istike2
istike2 06.12.2021 um 13:23:34 Uhr
Goto Top