Probleme mit FileCopy und UseX64=n

  • Hallo Gleichgesinnte,

    heute ist mir ein seltsames Phänomen aufgefallen, ich weis nur nicht ist es ein Bug oder mache ich irgendwas falsch.

    Folgendes Script auf einem x64-System mit der Option "UseX64=n" funktioniert nicht und das File wird nicht kopiert ...

    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    DirCreate(@TempDir & "\LOGS\EventLogs")
    FileCopy(@WindowsDir & "\System32\winevt\Logs\Internet Explorer.evtx", @TempDir & "\LOGS\EventLogs")

    [/autoit]


    Wenn ich hingegen die Option "UseX64=y" setzte, wird das File kopiert ...

    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseX64=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    DirCreate(@TempDir & "\LOGS\EventLogs")
    FileCopy(@WindowsDir & "\System32\winevt\Logs\Internet Explorer.evtx", @TempDir & "\LOGS\EventLogs")

    [/autoit]

    Hat jemand erfahrungen damit ? Das Sript soll sowohl auf x86 und x64-Systemen laufen und das File kopieren.
    Bitte um HIIIIILFE. Danke im voraus

  • Hi,


    Zwecks Rückwärts-Kompatibilität nutzt das Betriebssystem das %SystemRoot%\system32-Verzeichnis für seine 64-Bit-Komponenten. Bei der Ausführung von 32-Bit-Anwendungen werden Zugriffe auf Bibliotheken aus diesem Verzeichnis nach %SystemRoot%\SysWOW64 umgeleitet, wo sich die entsprechenden 32-Bit-Versionen befinden.

    Lg Kleiner

  • Du musst keine 2 Skripte erstellen.
    Du kannst auch einfach die Pfadumlenkung für X86-Programme auf X64-Systemen abschalten.
    Folgendes dafür einfach an den Anfang deines Skriptes:

    [autoit]

    DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)

    [/autoit]
  • Weil?
    Er möchte die Pfadangaben in seinem Skript nicht umgelenkt haben - exakt das wird damit gemacht.
    Die Änderung bezieht sich auch nur auf den aufrufenden Thread - alles andere bleibt somit unberührt.
    Was ist da jetzt gefährlich?