Autoit Skript läuft auf anderem PC nicht

  • Hallo liebe Community,

    ich habe eine GUI erstellt, die über eine API Informationen ausließt und dann weiter verarbeitet.

    Auf meinem Rechner funktioniert die erzeugte .exe auch super. Wenn ich aber einen Versuch auf dem Zielrechner starte, bekomme ich nach einiger Zeit eine Fehlermeldung.

    ERROR

    Autoit Error:

    $oHTTP.Send()

    $oHTTP^ ERROR

    Error: The requested action with this objekt has failed.

    Ich habe anschließend noch den If @error Then abzweig eingebaut. Werde daraus aber auch nicht schlau.

    @error = -2147352567

    @extended = 0

    Ich habe am Zielrechner eine relativ stabile Internetverbindung aber keine Adminrechte.

    Zu Testzwecken habe ich die GUI ohne diesen GET Request ausgeführt und das hat der Zielpc ohne Probleme ausgeführt.

    Also er blockiert die .exe nicht grundsätzlich aber hat mit dem Request ein Problem.

    Vielleicht kennt ihr ja das Problem oder jemand hat eine Idee an was es liegen könnte :Glaskugel:

    Gruß Yooh

    Codeschnipsel

    #Region GetRequest

    $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")

    $oHTTP.Open("GET", "https://www.__API__", False)

    $oHTTP.Send()

    If @error Then

    MsgBox(16, "Error", "SetRequestHeader method returned @error = " & @error & " and @extended = " & @extended)

    Exit

    EndIf

    $sReceived = $oHTTP.ResponseText

    $oStatusCode = $oHTTP.Status

    #EndRegion GetRequest

  • Hallo Yooh,

    ich benutze in paar Skripten auch das WinHttp-Objekt.

    Bei meinem PC musste ich aber vorher den folgenden Regkey zur TLS Sicherheit schreiben.

    Gruß gmmg

  • RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp", "DefaultSecureProtocols", "REG_DWORD", "2560")

    DefaultSecureProtocols

    • 0x00000008 : SSL 2.0
    • 0x00000020 : SSL 3.0
    • 0x00000080 : TLS 1.0
    • 0x00000200 : TLS 1.1
    • 0x00000800 : TLS 1.2

    2560 = 0x00000200 + 0x00000800 = 0x00000A00 = TLS 1.1 + TLS 1.2

  • Hallo zusammen,

    danke gmmg für deinen Vorschlag, bei meinem PC hat das auch geklappt.

    Allerdings wirft der Zielpc wieder eine Fehlermeldung...

    Error: Subscript used on non-accessible variable

    Und im LogFile steht nur -Error

    Den Vorschlag von alpines habe ich mir mal kurz angeschaut, bin aber noch nicht zu einer lauffähigen Lösung gekommen.

    Ich werde aber auf jeden Fall versuchen, eine lauffähige Lösung mit dem Wrapper zu basteln.

    Viele Grüße, Yooh

  • Schau mal ob ggf. Berechtigungen beim Problem-PC passen.

    Denn dein Fehler aus dem ersten Post sieht ganz nach so etwas aus.

    Kommt die Fehlermeldung vor dem Logeintrag oder danach (wenn der Fehler aufploppt, den Logeintrag anschauen bevor du die Meldung wegklickst)?

  • Also der Logeintrag kommt noch bevor ich die Errormeldung wegklicke.

    Ja, ich denke mittlerweile auch eher an ein Problem mit den Berechtigungen.

    Der Benutzer auf dem Ziel-PC hat keine Adminrechte, aber warum er mich das WinHttp-Objekt nicht ansprechen lässt, wundert mich.

  • Hallo zusammen,

    ich melde mich mal wieder, da das Problemchen immer noch nicht von mir gelöst werden konnte... :Face:

    An sich funktioniert die API, wenn ich die URL an dem problem PC in einen Browser eingebe, kommen die gewünschten Daten und sonst bei alles anderen PC's funktioniert auch der GET Request.

    Die Alternative von alpines habe ich mir mal angeschaut, komme aber nicht zu einem funktionierenden Ergebnis.

    Falls jemand noch eine Idee oder ein Beispiel hat, mit dem das Ganze funktionieren könnte, wäre ich sehr dankbar :)

    Viele Grüße

    Yooh