← Zurück zum Wiki
Hintergrund Vorbereitung XML-Konfiguration MSI erstellen Fazit

Warum EXE zu MSI?

Viele Hersteller liefern ihre Software ausschließlich als EXE-Installer aus. Für eine automatisierte Verteilung über Gruppenrichtlinien (GPO) oder Microsoft Intune wird jedoch oft ein MSI-Paket benötigt.

Das Problem

Die GPO-basierte Softwareverteilung unter Windows unterstützt nativ nur MSI-Pakete. EXE-Installer lassen sich zwar per Startskript ausrollen, aber Funktionen wie automatische Aktualisierungen oder saubere Deinstallation fehlen dann.

Der WatchGuard SSLVPN Client ist ein typisches Beispiel: Er wird ausschließlich als EXE bereitgestellt. Mit dem Open-Source-Toolkit WiX lässt sich daraus ein sauberes MSI-Paket erzeugen.

Voraussetzungen

• Windows-Rechner mit PowerShell

• .NET SDK 8.0 oder höher

• Aktueller WatchGuard SSLVPN Client (EXE) von software.watchguard.com

Vorbereitung

WiX installieren und Arbeitsverzeichnis vorbereiten.

1 .NET SDK installieren

Das .NET SDK wird als Grundlage für WiX benötigt. Download unter dotnet.microsoft.com.

2 WiX Toolset installieren

Die Installation erfolgt als globales .NET-Tool über die PowerShell.

dotnet tool install --global wix

3 Installation prüfen

Optional – die installierte WiX-Version anzeigen lassen.

wix --version

4 Ordnerstruktur anlegen

Erstellen Sie ein Arbeitsverzeichnis und kopieren Sie die heruntergeladene EXE-Datei hinein. Zusätzlich wird eine XML-Datei mit dem gleichen Basisnamen benötigt.

# Beispiel-Struktur: C:\Tools\wix\WG-SSLVPN\ ├── WG-MVPN-SSL_12_10_4.exe └── WG-MVPN-SSL_12_10_4.xml

XML-Konfiguration

Die XML-Datei beschreibt das MSI-Paket – Name, Version, Installationsparameter und den Pfad zur Quelldatei.

5 XML-Datei erstellen

Passen Sie die Variablen in den ersten Zeilen an Ihre Umgebung an. Die GUID sollte pro Anwendung eindeutig sein und bei Updates beibehalten werden.

<?define name = "WatchGuard Mobile VPN with SSL client 12.10.4"?> <?define exe = "WG-MVPN-SSL_12_10_4.exe"?> <?define path = "C:\Tools\wix\WG-SSLVPN"?> <?define silentArgs = "/silent /verysilent /TASKS="desktopicon""?> <?define version = "12.10.4"?> <?define publisher = "WatchGuard"?> <?define guid = "aa946d90-2197-4da0-a66f-b856a2921bb6"?> <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> <Package Name="$(var.name)" Manufacturer="$(var.publisher)" Version="$(var.version)" UpgradeCode="$(var.guid)" Scope="perMachine"> <Media Id="1" Cabinet="setup.cab" EmbedCab="yes" /> <Property Id="ARPSYSTEMCOMPONENT" Value="1" /> <Feature Id="InstallFeature" Title="Install Feature"> <ComponentRef Id="file" /> </Feature> <CustomAction Id="run_exe" Return="asyncWait" Execute="commit" ExeCommand="$(var.silentArgs)" HideTarget="yes" Impersonate="no" FileRef="executable" /> <InstallExecuteSequence> <Custom Action="run_exe" After="InstallFiles" Condition="NOT Installed AND NOT REMOVE" /> </InstallExecuteSequence> <StandardDirectory Id="TempFolder"> <Directory Id="INSTALLLOCATION" Name="$(var.guid)"> <Component Id="file" DiskId="1"> <File Id="executable" Name="$(var.exe)" Source="$(var.path)\$(var.exe)" /> </Component> </Directory> </StandardDirectory> </Package> </Wix>

GUID generieren

Jedes MSI-Paket benötigt einen eindeutigen Identifier. Diesen können Sie über die PowerShell erzeugen. Wichtig: Verwenden Sie bei Updates derselben Software immer die gleiche GUID.

[guid]::NewGuid().guid

Installationsparameter

Die Parameter /silent /verysilent sorgen für eine unbeaufsichtigte Installation ohne Benutzerinteraktion. Mit dem Zusatz /TASKS="desktopicon" wird automatisch eine Desktop-Verknüpfung angelegt.

MSI erstellen

Mit einem einzigen Befehl wird das MSI-Paket aus der XML-Definition erzeugt.

6 Build-Befehl ausführen

Starten Sie den Build-Prozess über die PowerShell. Die fertige MSI-Datei wird im selben Verzeichnis abgelegt.

wix build C:\Tools\wix\WG-SSLVPN\WG-MVPN-SSL_12_10_4.xml

7 Ergebnis prüfen

Kontrollieren Sie, ob die MSI-Datei im Arbeitsverzeichnis erstellt wurde. Testen Sie das Paket vor dem Rollout unbedingt einmal manuell auf einem Testclient.

Fazit & Weiterführendes

Mit WiX lässt sich jede EXE-Datei relativ unkompliziert in ein MSI-Paket überführen.

Das erzeugte MSI-Paket kann anschließend über Gruppenrichtlinien, Intune oder andere Deployment-Tools ausgerollt werden. Wenn der Hersteller eine native MSI-Version anbietet, sollte diese bevorzugt werden – die Konvertierung ist immer eine zusätzliche potenzielle Fehlerquelle.

Wie Sie das MSI-Paket anschließend per GPO verteilen, aktualisieren und die Client-Konfiguration zentral steuern, erfahren Sie in der Anleitung WatchGuard SSLVPN per GPO verteilen →

💡
Tipp: Die beschriebene Methode ist nicht auf den WatchGuard SSLVPN Client beschränkt – sie funktioniert grundsätzlich mit jeder EXE-Datei, die Silent-Install-Parameter unterstützt.

Quellen: letsdoautomation (GitHub) · WatchGuard KB – Silent Installation