64bit - keine zulässige 32bit Anwendung

  • Hi Leute,

    ich möchte per Run eine .msi starten, welche für 64bit Systeme gedacht ist (Programm_x64.msi). Doch ich bekomme die Meldung "%1 ist keine zulässige Win32-Anwendung".

    Kann mir jemand einen Tipp geben was ich falsch mache?


    Gruß Sascha

  • msi ist keine Datei im Portable Executable (PE)-Format, welche eigenständig lauffähige Programme darstellen.

    msi-Dateien benötigen einen Interpreter, der die darin enthaltenen Anweisungen ausführt.
    Früher war das mal die msiexec.exe aber mittlerweile wird da direkt msimsg.dll ausgeführt.

    Machen wir es kurz: Nimm statt Run() ShellExecute() .
    Diese Funktion sucht in der Registry mit welchem Programm eine Dateiendung verknüpft ist und ruft diese entsprechend auf.

  • 1) Bitte Betriebssystem nennen. (TYP und ob x32 oder x 64?)

    2) Bekommst Du den Fehler auch, wenn Du das *.msi von Hand startest?

    (Ok nicht schnell genug - und AspirinJunie hat es wohl schon "getroffen")

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • msi ist keine Datei im Portable Executable (PE)-Format, welche eigenständig lauffähige Programme darstellen.

    msi-Dateien benötigen einen Interpreter, der die darin enthaltenen Anweisungen ausführt.
    Früher war das mal die msiexec.exe aber mittlerweile wird da direkt msimsg.dll ausgeführt.

    Machen wir es kurz: Nimm statt Run() ShellExecute() .
    Diese Funktion sucht in der Registry mit welchem Programm eine Dateiendung verknüpft ist und ruft diese entsprechend auf.

    Herzlichen Dank! :klatschen:

  • einfach mit msiexec ausführen.

    RunAsWait($ADMINUSER, $DOMAIN, $ADMINPASS, 4, "MSIEXEC.EXE /i" & $Path & "\install.msi /quiet /qn")

    Run("MSIEXEC.EXE /i" & $Path & "\install.msi /quiet /qn")