VB.Net – PowerShell Befehle werden nicht ausgeführt (Program Files (x86))

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    VB.Net – PowerShell Befehle werden nicht ausgeführt (Program Files (x86))

    Hallo Forum,
    es tut mir leid das ich euch so schnell zweimal belästigen muss. Ich verzweifele fast und bin den tränen nah.

    Ich möchte einfach das wenn ich ein Button drücke eine PowerShell sich öffne als Admin und dann verschiedene Befehle ausgeführt werden. So wie in diesem Beispiel eine Firewall Regel.

    Befehl der in der PowerShell perfekt funktioniert:

    Quellcode

    1. ​netsh advfirewall firewall add rule name="Avast Business CloudCare " dir=in program="C:\Program Files (x86)\AVAST Software\Business Agent\ClientManager.exe" protocol=TCP remoteip=any action=allow


    Im Code allerdings nicht! Es kommt immer ein folgender Fehler:


    Er hat wohl ein Problem mit dem „(x86)“? Hier mein Code:

    Quellcode

    1. ​Private Sub Button1_Click(sender As Object, e As EventArgs) Handles AvastBCCaktiv.Click
    2. Dim psi As New ProcessStartInfo()
    3. psi.Verb = "runas" ' aka run as administrator
    4. psi.FileName = "powershell.exe"
    5. psi.Arguments = "netsh advfirewall firewall add rule name=""Avast Business CloudCare"" dir=in program=""C:\Program Files (x86)\AVAST Software\Business Agent\ClientManager.exe"" protocol=UDP remoteip=any action=allow; pause"
    6. Process.Start(psi)
    7. AvastBCCaktiv.BackColor = Color.LimeGreen
    8. End Sub


    Code Was mach ich den falsch? Ein verweis der mir .PS1 Dateien öffnen möchte ich vermeiden. Ich möchte alles in einer Exe Datei haben.
    Hab ihr noch eine Idee warum es nicht funktioniert?

    Gruß
    Steffen
    Schreib den Befehl in eine Datei (die du selbst zur Laufzeit erstellst) und führe die dann aus. Danach Datei wieder löschen.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Also mit:

    Quellcode

    1. ​ psi.Arguments = "netsh advfirewall firewall add rule name=""Avast Business CloudCare"" dir=in program=" 'C:\Program Files (x86)\AVAST Software\Business Agent\ClientManager.exe'" protocol=UDP remoteip=any action=allow; pause"
    2. Process.Start(psi)


    Hat es leider nicht funktioniert. Es ist jetzt alles grün sobald ich das erste " 'C:\Pr.... geschrieben habe. Muss ich noch was machen?
    Die Anführungszeichen richtig setzen. Das ' wird bei normalem Code als Kommentaranfang gewertet. Es sei denn es ist innerhalb von zwei ". Da das startende " direkt am Anfang hinter dem = kommt, aber das abschließende vor dem ', ist eben jenes ' außerhalb der Stringmarkierung. Und somit der Anfang eines Kommentars.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.