Variable in netsh cmdline

  • Hallo,
    mir bereitet folgender Script Kopfschmerzen:

    [autoit]

    RunWait(@ComSpec & " /c netsh firewall add portopening TCP " & $Variable1 & $Variable2, @SystemDir, @SW_HIDE)

    [/autoit]

    Ich bekomme es leider nicht "gebacken" ;)
    $Variable1 und 2 sollen Benutzereingaben sein. Soweit so gut bzgl. Hintergrundinformationen.
    Aber leider kann der Befehl nicht ausgeführt werden.
    Es kommt immer ein Error. Was genau der Error war, weis ich leider nicht mehr so genau :peinlich:

    Habe schon verschiedene Variaten ausprobiert, herrje.

    Spoiler anzeigen


    Von..

    [autoit]

    Run(@ComSpec & " /c netsh firewall add portopening TCP $Variable1 $Variable2" & @CRLF & $Variable1& $Variable2, @SystemDir, @SW_HIDE)

    [/autoit]


    .. bis hin zu "&" und " "'" " Kombinationen.

    Eine zweite, nebensächliche Frage lautet, wie der Befehl (portopening) für Windows Vista / Windows 7 lautet.

    gruß

    Einmal editiert, zuletzt von Hikonia (15. November 2010 um 13:28)

  • Hallo Hikonia,

    so sollte es klappen:

    [autoit]

    $sCom =@ComSpec & " /c netsh firewall add portopening TCP " & $Variable1 & " " & $Variable2
    RunWait($sCom, @SystemDir, @SW_HIDE)
    ConsoleWrite($sCom & @CRLF); zur Kontrolle

    [/autoit]

    Anhand der Consoleausgabe kannst du überprüfen ob die Syntax richtig ist

    mfg autoBert

  • Huhu,

    recht schnelle Antwort. Bin erstaunt :)

    Ich habe das mal ausprobiert, und zwar hat das schreiben geklappt, doch wenn ich die Ports ansehe, findet sich nur einen Eintrag mit den Namen "7" und der Nummer "9", und nicht das, was ich angegeben habe.
    Das ist komisch :huh:

  • Ah, da muss wohl der Fehler liegen ;)
    Ich, der totale Anfänger :S

    Folgendes habe ich in der GUI:

    [autoit]

    $Input1 = GUICtrlCreateInput("", 136, 96, 169, 21)
    $Input2 = GUICtrlCreateInput("", 136, 128, 169, 21)

    [/autoit]
  • Dann muss das Skript so aussehen:

    Spoiler anzeigen
    [autoit]

    ;...
    $Input1 = GUICtrlCreateInput("", 136, 96, 169, 21)
    $Input2 = GUICtrlCreateInput("", 136, 128, 169, 21)
    ;...

    [/autoit] [autoit][/autoit] [autoit]

    $sCom =@ComSpec & " /c netsh firewall add portopening TCP " & GUICtrlRead($Input1) & " " & GUICtrlRead($Input2)
    RunWait($sCom, @SystemDir, @SW_HIDE)
    ConsoleWrite($sCom & @CRLF);zur Syntax-Kontrolle

    [/autoit]

    mfg autoBert

  • Vielen dank :)
    Das war wirklich eine sehr, sehr schnelle Hilfe.
    Ich hätte gestern abend schon fragen müssen ;)

    Vielen dank. Klappt nun einwandfrei.