Aus Outlook heraus ein Powershell-Skript starten und auf Rückgabewert waten

  • Outlook

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von All93rounder.

    Aus Outlook heraus ein Powershell-Skript starten und auf Rückgabewert waten

    Hallo,

    ich suche mich gerade etwas zu tote und dachte mir nun professionelle Hilfe zu holen :thumbup:
    Ich möchte aus Outlook heraus ein Powershell-Skript starten und bei erfolgreicher Verarbeitung des Skripts, die Mail löschen bzw. bei einem Fehler in einen Error-Ordner verschieben. Dabei reicht mir ein Rückgabewert (return 1 oder return 0). Leider treten gerne Fehler im Prozess des Powershell-Skript (Datenbankverbindung) auf, sodass ich eine eventuelle Option mit dem Error-Kanal leider nicht nutzen kann.
    Ich fände es super, wenn ihr eine Möglichkeit kennt, mit der ich ob ich auf ein Rückgabewert der Powershell warten kann bzw. solange bis die Session nicht mehr existiert.

    Dabei bin ich bereits über viele Möglichkeiten gestolpert, jedoch brachte bisher keine den erwünschten Erfolg.
    Der Zeit verwende ich den Shell-Befehl zum normalen Aufrufen

    VB.NET-Quellcode

    1. Shell (psPath & " " & psSkript & " '" & saveFile & "'"), vbNormalFocus

    Leider wartet vb hierbei auf keinen Rückgabewert... :(

    In einem Forumsartikel bin ich über eine wohl erfolgreiche Lösung gestolpert, die bei mir jedoch nur das Skript per Editor aufruft...

    VB.NET-Quellcode

    1. Dim wsh As Object
    2. Set wsh = VBA.CreateObject("WScript.Shell")
    3. Dim waitOnReturn As Boolean: waitOnReturn = True
    4. Dim windowStyle As Integer: windowStyle = 1
    5. wsh.Run (psPath & " " & psSkript & " '" & saveFile & "'"), windowStyle, waitOnReturn


    Ein weiterer Beitrag ist noch viel versprechender, liefert aber leider immer 0 zurück. Außer die Session wird unterbrochen, dann erhalte ich -17461037. Aber leider würde ich gerne auch vom Skript heraus ein okay oder error zurück geben können.
    Hier noch der verwendete Code:

    VB.NET-Quellcode

    1. cmd = "powershell.exe -noprofile -command 'C:\test.ps1'"
    2. Set Shell2 = CreateObject("WScript.Shell")
    3. rv = Shell2.Run(cmd, , True)
    4. MsgBox "PowerShell returned: " & rv, vbSystemModal


    Ich würde mich sehr über professionelle Antworten freuen!

    Gruß Chris

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „All93rounder“ ()