Ein EXE – Setup lässt sich nicht installieren

Wir verwenden EXE Setup´s um automatisch prüfen zu können ob alle Installationsvoraussetzungen gegeben sind, um alte Versionen automatisch zu deinstalliert, benötigte Programme in den richtigen Versionen automatisch nachzuladen bzw. um zu entscheiden ob auf dem Rechner eine 32bit oder 64bit Version des Programms installiert werden soll.

Bei einigen wenigen Rechnern kann es vorkommen dass sich das EXE Setup nicht installieren lässt und eine Fehlermeldung angezeigt wird dass ein Prozess nicht auf eine Datei zugreifen kann.

Prozess kann nicht auf eine Datei zugreifen

Um trotzdem die Software installieren zu können muss an Stelle der EXE das MSI Setup ausgeführt werden.

Mit dem Befehl /extract: <Pfad> (z.B.: Mypackage.exe /extract:”C:\My work”) können die MSI Einzelkomponenten aus dem EXE in den angegebenen Zielpfad extrahiert und von dort aus ausgeführt werden und so die Software zu installieren.

Software-Setup´s – Meldung “ungültige Signatur oder beschädigte Kabinettdatei” – Code Signatur Zertifikate – SHA-1 und SHA-256

Seit dem 1.1.2016 kommt es immer wieder dazu dass wir die Meldung bekommen dass unsere Software-Setup´s sich auf bestimmten Systemen nicht installieren lassen. Es kommt dabei beim Ausführen des Setup´s zu einer Fehlermeldung “ungültige Signatur oder beschädigte Kabinettdatei”.

Fehlermeldung signatur

Es liegt daran dass ab 1.1.2016 für das Signieren von Software keine SHA-1 sondern nur mehr SHA-256 Zertifikate verwendet werden dürfen. Aber nicht jede alte Betriebssystem Version unterstützt SHA-256 Zertifikate.

OS support for SHA-1 and SHA-256

Info aus dem Microsoft PKI Blog:

“Effective January 1, 2016, Windows (version 7 and higher) and Windows Server will no longer trust new code that is signed with a SHA-1 code signing certificate for Mark-of-the-Web related scenarios (e.g. files containing a digital signature) and that has been time-stamped with a value greater than January 1, 2016. This cut-off date applies to the code-signing certificate itself.

This restriction will not apply to the time-stamp certificate used to time-stamp the code-signing certificate or the certificate’s signature hash (thumbprint) until January 1, 2017. After this time, Windows will treat any code with a SHA-1 time-stamp or SHA-1 signature hash (thumbprint) as if the code did not have a time-stamp signature.”

What does that mean?
Any files signed with an SHA-1 certificate need to have a timestamp showing a date and time prior to Jan 1, 2016 for continued support. Those files will still be allowed through the ‘Mark-of-the-web” system until Jan 14, 2020, when all SHA-1 support will stop in all current versions of Windows. All new signatures created or timestamped after Jan 1, 2016 must be SHA-256 based signatures or they will cause a “digital signature is corrupted or invalid” error when downloading.

What versions of Windows support SHA-256 signatures?
SHA-256 signatures are not supported in Windows XP SP2 or earlier. SHA-256 is only supported in User Mode for Windows XP SP 2, Vista and Windows Server 2008R1 — SHA-256 certificates are not supported for drivers on any version prior to Windows 7.

Microsoft is announcing the availability of an update for all supported editions of Windows 7 and Windows Server 2008 R2 to add support for SHA-2 signing and verification functionality. Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2, Windows RT, and Windows RT 8.1 do not require this update as SHA-2 signing and verification functionality is already included in these operating systems. This update is not available for Windows Server 2003, Windows Vista, or Windows Server 2008.

Lösungsmöglichkeit:
Bitte kontaktieren sie uns diesbezüglich, wir stellen ihnen dann ein Setup ohne Code-Signatur zur Verfügung. Damit kann die Software auch auf “alten” Betriebssystemen die keine SHA-256 Verschlüsselung unterstützen, installiert werden.

MSI Setup – Sprachcode manuell setzen

Manchmal kann es erforderlich sein den Sprachcode für die Installation eines MSI Setup´s manuell zu setzen. Standardmäßig wird die Spracheinstellung des Systems genommen von dem aus die Software installiert wird. So kann es zu Unterschieden zwischen der lokalen Installation des Setup´s und der Installation über z.b. den MS-SCCM Server (System Center Configuration Manager) kommen. Für das Erkennen und das automatische Update ist es erforderlich dass der Spachcode einheitlich ist. Es gibt dafür einen eigenen MSI Parameter.

Beispiel x86 Deutsche OS Version:
msiexec.exe /i “C:\InstallSetup\gs918.1×86.msi” Productlanguage=1033
1033 ist der Code für Englisch

Beispiel x64 Englische OS Version:
msiexec.exe /i “C:\InstallSetup\gs918.1×64.msi” Productlanguage=1031
1031 ist der Code für Deutsch

eDocPrintPro – ohne Benutzereigabe – “Silent” deinstallieren

Neben der “Silent” Installation ohne Benutzereingabe kann  es ebenfalls erforderlich sein den eDocPrintPro – die normale Version, die PDF/A Version oder GhostScript auch auf die gleiche Weise zu deinstallieren. Dafür muss man jedoch den Produktcode des Setup´s kennen um die Deinstallation “Silent” durchführen zu können:

“msiexec” /qn /uninstall {<Produktcode>}

Achtung: Ein “Siltent – Uninstall” ist nur als “Administrator” möglich d.h. der Befehl muss entweder über “CMD” der als “Administrator” gestartet oder über eine *.BAT Datei als “Administrator” ausgeführt werden.

Produktcode eDocPrintPro:

  • Englische Installation: {EB0C0CC8-9BEB-4578-9960-CEE5399CA40A}
  • Deutsche Installation: {72153E94-CAD9-42FF-9319-20823D92978C}

Produktcode eDocPrintPro PDF/A:

  • Englische Installation: {ACDDA0E0-4FCF-414A-8DB2-8C00D85B8487}
  • Deutsche Installation: {FD85B8BD-6497-4009-B528-00596F5D1B54}

Produktcode GhostScript x86  und GhostScript x64:

  • Englische Installation: {6597A62D-8BD9-49EB-AAE6-DEDF417C68B1}
  • Deutsche Installation: {344BD061-2564-422E-860F-9E5DC49983AE}

Neue EXE Setups – Silent Installation und Installationsoptionen

Seite Kurzem haben wir die Installation unserere Anwendungen auf ein neues Tool zur Erzeugung der Setup´s umgestellt. Wir verwenden jetzt den “Advanced Installer” dafür.  Damit können wir entweder normale MSI basierende Setup´s erzeugten oder aber auch Setup´s die nur aus einer einzigen EXE Datei bestehen. Damit kann die Installation automatisch für 32bit und 64bit Systeme angepaßt werden wodurch wir für beide Plattfomen nur mehr ein einziges EXE benötigen.

Eine Übersicht der mit dem Advanced Installer verfügbaren EXE Commandline Parameter finden Sie hier >>>

Beispiel:  Silent Installation – eDocPrintPro Druckertreiber

  • eDocPrintPro.exe /exenoui /qn