Ein selbstextrahierendes oder selbstentpackendes Archiv (SFX) ist eine feine Sache um ohne Tools wie z.B. 7-Zip Dateien und Ordner entpacken zu können. Etwas spezieller wird die Sache allerdings, wenn im Anschluss ein Skript oder eine Anwendung ausgeführt werden soll.

Letztlich ist ein SFX ein Archiv das (s)einen Entpacker gleich mitbringt und daher handelt es sich um eine ausführbare Datei (*.exe). In der Regel können alle gängigen Programme wie 7-Zip, WinZip, WinRAR, usw. solche Dateien ohne großen Aufwand erstellen. Soll allerdings direkt im Anschluss an das Entpacken etwas ausgeführt werden, beispielweise eine Installationsroutine, so ist das eine andere Sache.

7-Zip

Bei 7-Zip wird beispielsweise das LZMA SDK benötigt, man muss Dateien vorbereiten bzw. erstellen und letztlich alles via Eingabeaufforderung zusammenfügen. Wie das im Detail aussehen kann ist im Beitrag

Ein paar Notizen zu pcvisit

ab “Vorkonfiguriertes Host-Setup erstellen” beschrieben. Das funktioniert sehr gut und verwende ich so bereits seit mindestens 2011, hat aber auch einen Nachteil: Die hieraus resultierende *.exe-Datei verlangt immer nach erhöhten Rechten. Das kann zwar mehr oder weniger aufwendig gelöst werden wie man beispielweise hier nachlesen kann:

superuser – 7zip – self-extracting executables require admin privileges and trigger compatibility warning

Wem das allerdings zu aufwendig ist oder wer mehr Optionen benötigt, das schaut sich nach Alternativen um.

IExpress

Unglaublich, aber wahr: IExpress stammt noch aus der Windows NT-Zeit und ist selbst in Windows 11 noch vorhanden. Dieses Tool bzw. dieser Assistent erstellt nach der Abfrage von verschiedenen Werten eine selbstentpackende CAB-Datei.

Das funktioniert insgesamt, selbst ohne erhöhte Rechte, ist allerdings allem in allem mittlerweile (imho) recht antiquiert. Ferner scheint nur eine 8.3-Notation richtig zu funktionieren bzw. gepackt zu werden, Skripte für die Ausführung nach dem Entpacken funktionieren nur nach manueller Eingabe (Auswählen kann man nur *.exe-Dateien), darüber hinaus können keine Ordner direkt ausgewählt bzw. gepackt werden (ein Workaround ist die *.SED-Datei zu editieren).

Für eine aktuelle Tüftelei taugt IExpress offenbar nicht (mehr, es müsste vieles umgeschrieben/umorganisiert werden), zuletzt effektiv hatte ich damit zu Windows XP-Zeiten gearbeitet. Ferner gibt es diverse Sicherheitslücken.

Hiernach sollen PowerShell-Skripte mit IExpress zu ausführbaren Dateien “konvertiert” werden können:

TheWindowsClub – How to convert PowerShell script (PS1) file to EXE with IExpress on Windows 11/10

Getestet habe ich das allerdings jetzt nicht. Unklar ist zudem wie lange Microsoft dieses Tool noch im Betriebssystem belassen wird.

Weitere

Bevor es zum (möglicherweise vorläufigen) Ende kommt vorher noch ein paar weitere Tools die getestet wurden:

Laut Recherche sollen PeaZip und  SFX Packager ausführbare Dateien ohne UAC-Aufforderung erstellen können. Im Test verhielt es sich allerdings nicht so wie erwartet. PeaZip bietet offenbar keine Option zum Ausführen von Skripten oder Dateien nach dem Entpacken an, der SFX Packager fordert dennoch erhöhte Rechte an. Beide Tools haben gemein, das sie auf 7-Zip (Komponenten) zurückgreifen.

WinRAR

Obwohl hinlänglich  für seine sehr guten Möglichkeiten zum SFX-Erstellen bekannt kam ich erst jetzt dazu WinRAR in dieser Hinsicht mal zu testen. Und ja, es stimmt was man so hört und sagt. WinRAR bietet alles und noch viel mehr was man sich zum Erstellen von selbstentpackenden Archiven wünscht.

Spannend wird es ab “Erweitert – SFX-Optionen:

Was nutzt ihr so um SFX oder ähnliches zu erstellen? Lasst mir gerne ein Kommentar da.