alte DB Scripte laufen plötzlich nicht mehr

  • Hallo zusammen,

    ich habe ein paar Autoit Scripte, welche mit der MSSQL.au3 diverse Datenbanken anflanschen. Diese laufen seit Jahren auf einem Windows 2016 Terminalserver, die Datenbanken liegen auf einem anderen Windows Server. An den Datenbanken wurde nichts geändert und an den Scripten auch nicht. Es gab wohl eine Domänen Migration. In einen Script bekomme ich plötzlich diesen SSL Sicherheitsfehler, wobei wir hier nicht über einen SSL Kanal kommunizieren. Auf dem Terminalserver läuft z.B. auch DBeaver, welcher weiterhin die Datenbanken ansprechen kann.



    In meinem anderen Script fliege ich bei Zeile 350 raus.


    Anbei der Ausschnitt aus der stripped Datei


    Wie gehe ich bei so einer Fehlersuche denn vor. Bin jetzt schon einige Zeit aus dem Scripten draußen, von daher um jede Hilfe dankbar.

    Gruß

  • Ich würde mit der Err.description starten. Sie gibt an, dass es ein Problem mit SSL zu sein scheint.
    Err.number hilft leider wenig, da dieser Code einen allgemeinen Fehler anzeigt.

    Google zeigt für den Suchtext "connectionOpen SECDoClientHandshake SSL 80020009" in Richtung TLS.
    Z.B.: https://stackoverflow.com/questions/7151…-error-on-windo

  • Google zeigt für den Suchtext "connectionOpen SECDoClientHandshake SSL 80020009" in Richtung TLS

    Das würde ja Sinn machen. Wie gesagt, im Konzern wurden wir in eine andere AD Domain migriert. Vermutlich wurde in dem Step auch die eine oder andere TLS Version deaktiviert. Da ich ja nur mit der mssql.au3 arbeite und damit die Verbindung herstelle, stellt sich mir halt die Frage, ob es in der Richtung was aktuelleres gibt?

  • Wenn Du den aktuellsten SQLOLEDB Treiber verwendest, dann sollte TLS 1.2 kein Problem mehr sein (zumindest lt. Stackoverflow, siehe Link oben).

    Mit folgendem Skript erhältst Du eine Liste aller installierten Treiber inkl. Dateiname und Version.

  • Code4Fun liegt es wirklich an der Verbindung oder an der Func _SQLQuery

    Im MS Access musste ich auch die EOF abfragen.

    This is how I changed it and it seems to have fixed the issue:

    Code
    $sqlCon = ObjCreate("ADODB.Connection")
    $sqlCon.Open($ConnectionString)
    
    $sqlRs = ObjCreate("ADODB.Recordset")
    $sqlRs.Open ($query, $sqlCon) 
    While not $sqlRs.EOF
        $Checked = $sqlRs.GetRows
    Wend
    ADODB error 80020009
    I'm getting the following error when I use $sqlCon = ObjCreate("ADODB.Connection") $sqlCon.Open($ConnectionString) $sqlRs = ObjCreate("ADODB.Recordset")…
    www.autoitscript.com
    Awesome
    10. Dezember 2011 um 21:08

    Gruß Marcel

  • Lt. Fehlermeldung in Post #1 tritt dieser auf Zeile 350 auf. Dies ist das "$sqlCon.Open" statement.
    Die COM-Error Funktion deutet auch eindeutig auf ein SSL/TLS Problem hin.

  • Wenn Du den aktuellsten SQLOLEDB Treiber verwendest, dann sollte TLS 1.2 kein Problem mehr sein (zumindest lt. Stackoverflow, siehe Link oben).

    Mit folgendem Skript erhältst Du eine Liste aller installierten Treiber inkl. Dateiname und Version.

    Hallo Water,

    wenn ich versuche das Script via F5 laufen zu lassen (unter aktueller Autoit Version 3.3.16.1), bekomme ich folgenden Fehler:

    Treiber.au3"(60,94) : error: _FileGetProperty(): undefined function.
                    $aResult[$iIndexResult][4] = _FileGetProperty($aResult[$iIndexResult][3], "Dateiversion")
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    Treiber.au3 - 1 error(s), 0 warning(s)

    An was könnte das liegen?

  • Folgende Links behandeln auch das Handshake Thema. Eventuell lassen sich da Infos gewinnen.

    https://learn.microsoft.com/en-us/answers/…iled-(dbnetlib)(connectionopen

    SSL Security error using Microsoft OLE DB Provider for SQL Server
    Tasks using 'Microsoft OLE DB Provider for SQL Server' are failing with the following error: Possible Error 1:  Error: Connector connect error: ErrorSource:…
    community.qlik.com
    [DBNETLIB][ConnectionOpen (SECDoClientHandshake()).] SSL security error on windows server 2008
    I have a problem of SQL connection between two servers. One of the servers where the site code is stored is a Windows Server 2008 and my database is on a…
    stackoverflow.com

    Einmal editiert, zuletzt von gmmg (15. August 2024 um 08:50)

  • wenn ich versuche das Script via F5 laufen zu lassen (unter aktueller Autoit Version 3.3.16.1), bekomme ich folgenden Fehler:

    Da muss ich Dir zustimmen :D
    Im Forum findest Du diese Funktion hier: https://www.autoitscript.com/forum/topic/14…rties-of-a-file

  • Ich muss mich jetzt nochmals melden, da ich noch keine Lösung habe. Folgendes habe ich mal gemacht. Da ich kein Programmierer bin, habe ich mir via copilot einen C# Code zusammen bauen lassen, welcher mit den Zugangsdaten von Autoit die Datenbank anfrägt. Wenn die Verbindung erfolgreich ist (oder auch nicht), soll eine Messagebox ausgegeben werden. Beim ersten Versuch wurde dort dann ebenfalls auf ein SSL Problem verwiesen. Leider werde ich die ganzen Parteien nicht an einen Tisch bekommen, von daher wurde mir "erst mal" - damit ich die Verbindung hinbekomme, folgendes empfohlen.

    Code
    // Verbindung zum SQL Server herstellen
    string connectionString = $"Server={ip};Database={dbName};User Id={user};Password={password};Encrypt=True;TrustServerCertificate=True;"; // Verbindungszeichenfolge für den SQL Server
    using (SqlConnection conn = new SqlConnection(connectionString)) // Erstellt eine neue SQL-Verbindung

    Wie bilde ich das Encrypt=True;TrustServerCertificate=True; in meinem Autoit Script bzw. der MSSQL.au3 ab?

    Das hier geht leider nicht

    Einmal editiert, zuletzt von Code4Fun (21. August 2024 um 09:08)