{"id":24375,"date":"2024-09-02T15:56:27","date_gmt":"2024-09-02T13:56:27","guid":{"rendered":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/?p=24375"},"modified":"2025-02-25T09:52:20","modified_gmt":"2025-02-25T08:52:20","slug":"howto-konvertierung-von-exe-zu-msi-fuer-die-softwareverteilung-am-beispiel-watchguard-sslvpn","status":"publish","type":"post","link":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/2024\/09\/howto-konvertierung-von-exe-zu-msi-fuer-die-softwareverteilung-am-beispiel-watchguard-sslvpn\/","title":{"rendered":"HOWTO: Konvertierung von EXE zu MSI f\u00fcr die Softwareverteilung am Beispiel WatchGuard SSLVPN"},"content":{"rendered":"<p>In diesem Blog-Artikel m\u00f6chte ich beschreiben, wie eine EXE-Datei f\u00fcr die Softwareverteilung (z.B. via Azure InTune oder Gruppenrichtlinien) zu einer MSI-Datei konvertiert werden kann. Als Beispiel f\u00fchre ich den WatchGuard SSLVPN Client 12.10.4 an, welcher nicht als MSI Installer von WatchGuard bereitgestellt wird.<!--more--><\/p>\n<h3>Konvertierung von EXE zu MSI f\u00fcr die Softwareverteilung am Beispiel WatchGuard SSLVPN<\/h3>\n<ol start=\"1\">\n<li>Laden Sie sich den aktuellen WatchGuard SSLVPN Client herunter (<a href=\"https:\/\/software.watchguard.com\" target=\"_blank\" rel=\"noopener\">https:\/\/software.watchguard.com<\/a> -&gt; Firebox ausw\u00e4hlen -&gt; Paket herunterladen):<br \/>\n<img decoding=\"async\" class=\"size-full wp-image-24376 alignnone\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-1.png\" alt=\"\" width=\"635\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-1.png 818w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-1-300x158.png 300w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-1-768x404.png 768w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-1-800x421.png 800w\" sizes=\"(max-width: 818px) 100vw, 818px\" \/><br \/>\n<img decoding=\"async\" class=\"size-full wp-image-24377 alignnone\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-2.png\" alt=\"\" width=\"635\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-2.png 797w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-2-300x217.png 300w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-2-768x556.png 768w\" sizes=\"(max-width: 797px) 100vw, 797px\" \/><\/li>\n<li>Laden Sie die .NET SDK herunter und installieren Sie diese (<a style=\"font-size: inherit; background-color: #ffffff;\" href=\"https:\/\/dotnet.microsoft.com\/en-us\/download\/dotnet\/8.0\" target=\"_blank\" rel=\"noopener\">https:\/\/dotnet.microsoft.com\/en-us\/download\/dotnet\/8.0<\/a><span style=\"font-size: inherit;\">)<\/span><\/li>\n<li>Installieren Sie im n\u00e4chsten Schritt via Powershell \u201eWiX\u201c:\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-linenumbers=\"false\">dotnet tool install --global wix<\/pre>\n<p>Optional \u2013 Pr\u00fcfen der installierten \u201eWiX\u201c Version:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-linenumbers=\"false\">wix --version<\/pre>\n<\/li>\n<li>Legen Sie sich eine passende Ordnerstruktur an (in meinem Beispiel C:\\Tools\\wix\\WG-SSLVPN\\). F\u00fcgen Sie im gew\u00e4hlten Pfad den heruntergeladene WatchGuard SSLVPN Client ein. Erstellen Sie zus\u00e4tzlich eine Text-Datei mit dem gleichen Dateinamen und der Endung XML:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-24378 alignnone\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-3.png\" alt=\"\" width=\"635\" height=\"192\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-3.png 635w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2024\/09\/howto-exe-zu-msi-3-300x91.png 300w\" sizes=\"(max-width: 635px) 100vw, 635px\" \/><\/li>\n<li>Kopieren Sie folgenden Inhalt in die XML-Datei und editieren Sie die Parameter der Zeilen 1-7 nach Bedarf.\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-highlight=\"1-7\">&lt;?define name = \"WatchGuard Mobile VPN with SSL client 12.10.4\"?&gt; &lt;!-- Name des zu erstellenden Installers --&gt;\r\n&lt;?define exe = \"WG-MVPN-SSL_12_10_4.exe\"?&gt; &lt;!-- Name der Quell-Datei (EXE) --&gt;\r\n&lt;?define path = \"C:\\Tools\\wix\\WG-SSLVPN\"?&gt; &lt;!-- gew\u00e4hltes Verzeichnis --&gt;\r\n&lt;?define silentArgs = \"\/silent \/verysilent \/TASKS=\"desktopicon\"\"?&gt; &lt;!-- Installationsparameter --&gt;\r\n&lt;?define version = \"12.10.4\"?&gt; &lt;!-- Versionsnummer --&gt;\r\n&lt;?define publisher = \"WatchGuard\"?&gt; &lt;!-- Herausgeber --&gt;\r\n&lt;?define guid = \"aa946d90-2197-4da0-a66f-b856a2921bb6\"?&gt; &lt;!-- eindeutiger Identifier --&gt;\r\n\r\n&lt;Wix xmlns=\"http:\/\/wixtoolset.org\/schemas\/v4\/wxs\"&gt;\r\n        &lt;Package Name=\"$(var.name)\" Manufacturer=\"$(var.publisher)\" Version=\"$(var.version)\"\r\n                UpgradeCode=\"$(var.guid)\" Scope=\"perMachine\"&gt;\r\n\r\n                &lt;Media Id=\"1\" Cabinet=\"setup.cab\" EmbedCab=\"yes\" \/&gt;\r\n\r\n                &lt;Property Id=\"ARPSYSTEMCOMPONENT\" Value=\"1\" \/&gt;\r\n\r\n                &lt;Feature Id=\"InstallFeature\" Title=\"Install Feature\"&gt;\r\n                        &lt;ComponentRef Id=\"file\" \/&gt;\r\n                &lt;\/Feature&gt;\r\n\r\n                &lt;CustomAction Id=\"run_exe\" Return=\"asyncWait\" Execute=\"commit\"\r\n                        ExeCommand=\"$(var.silentArgs)\" HideTarget=\"yes\" Impersonate=\"no\"\r\n                        FileRef=\"executable\" \/&gt;\r\n\r\n                &lt;InstallExecuteSequence&gt;\r\n                        &lt;Custom Action=\"run_exe\" After=\"InstallFiles\"\r\n                                Condition=\"NOT Installed AND NOT REMOVE\" \/&gt;\r\n                &lt;\/InstallExecuteSequence&gt;\r\n\r\n                &lt;StandardDirectory Id=\"TempFolder\"&gt;\r\n                        &lt;Directory Id=\"INSTALLLOCATION\" Name=\"$(var.guid)\"&gt;\r\n                                &lt;Component Id=\"file\" DiskId=\"1\"&gt;\r\n                                        &lt;File Id=\"executable\" Name=\"$(var.exe)\"\r\n                                                Source=\"$(var.path)\\$(var.exe)\" \/&gt;\r\n                                &lt;\/Component&gt;\r\n                        &lt;\/Directory&gt;\r\n                &lt;\/StandardDirectory&gt;\r\n        &lt;\/Package&gt;\r\n&lt;\/Wix&gt;<\/pre>\n<p>-GUID: Hier sollte ein eindeutiger Identifier generiert werden. Der Identifier muss auch f\u00fcr Updates des SSLVPN Clients weiterverwendet werden. Eine GUID k\u00f6nnen Sie sich wie folgt via Powershell generieren:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-linenumbers=\"false\">[guid]::NewGuid().guid<\/pre>\n<p>-Installationsparameter: \u201e\/silent \/verysilent\u201c sind n\u00f6tig f\u00fcr eine automatisierte Installation ohne Eingabeaufforderung. F\u00fcgen Sie wie im Beispiel noch \u201e\/TASKS=\u201cdesktopicon\u201c\u201c an, so wird automatisch eine Desktopverkn\u00fcpfung f\u00fcr die User generiert. M\u00f6gliche Parameter hat mein Kollege im Blog-Artikel <a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/2017\/11\/watchguard-sslvpn-silent-installation-mit-parameteruebergabe\/\" target=\"_blank\" rel=\"noopener\">&gt;&gt; WatchGuard SSLVPN Silent Installation mit Parameter\u00fcbergabe<\/a> zusammengefasst.<\/li>\n<li>Erzeugen Sie den MSI-Installer via \u201eWiX\u201c \u00fcber die Powershell:\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-linenumbers=\"false\">wix build C:\\Tools\\wix\\WG-SSLVPN\\WG-MVPN-SSL_12_10_4.xml<\/pre>\n<\/li>\n<li>Pr\u00fcfen Sie, ob die MSI-Datei im Verzeichnis erzeugt wurde. Vor einer automatisierten Verteilung sollte der Installer einmal manuell getestet werden.<\/li>\n<\/ol>\n<h3>Fazit<\/h3>\n<p>\u00dcber den veranschaulichten Weg kann sehr einfach eine EXE zu einer MSI konvertiert werden. Via MSI ist ein Rollout sowie die Aktualisierung sehr einfach via Gruppenrichtlinie oder \u00e4hnliche Tools m\u00f6glich. Wenn m\u00f6glich w\u00fcrde ich eine MSI vom Hersteller immer bevorzugen, da die Wandlung von EXE zu MSI eine weitere m\u00f6gliche Fehlerquelle darstellt.<\/p>\n<p>Wie Sie den SSLVPN Client via Gruppenrichtlinien verteilen, updaten und konfigurieren k\u00f6nnen, finden Sie in unserem Blog-Artikel <a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/2024\/09\/howto-verteilung-update-und-konfiguration-des-watchguard-sslvpn-clients-via-gruppenrichtlinien\/\" target=\"_blank\" rel=\"noopener\">&gt;&gt; HOWTO: Verteilung, Update und Konfiguration des WatchGuard SSLVPN Clients via Gruppenrichtlinien<\/a>.<\/p>\n<h3>Quellen<\/h3>\n<ul>\n<li>Besonderen Dank an \u201eletsdoautomation\u201c, die YouTube Videos und das Git haben mir viel Zeit und Recherche erspart:<br \/>\nGit: <a style=\"font-size: inherit; background-color: #ffffff;\" href=\"https:\/\/github.com\/letsdoautomation\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/letsdoautomation<\/a><br \/>\nYouTube: <a style=\"font-size: inherit; background-color: #ffffff;\" href=\"https:\/\/www.youtube.com\/@LetsDoAutomation\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/@LetsDoAutomation<\/a><\/li>\n<li><a href=\"https:\/\/techsearch.watchguard.com\/KB?type=Article&amp;SFDCID=kA10H000000g3E9SAI\" target=\"_blank\" rel=\"noopener\">WatchGuard Knowledge Base \u2013 Mobile VPN with SSL client silent installation<\/a><\/li>\n<li><a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/2017\/11\/watchguard-sslvpn-silent-installation-mit-parameteruebergabe\/\" target=\"_blank\" rel=\"noopener\">Blog-Artikel \u2013 WatchGuard SSLVPN Silent Installation mit Parameter\u00fcbergabe<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Blog-Artikel m\u00f6chte ich beschreiben, wie eine EXE-Datei f\u00fcr die Softwareverteilung (z.B. via Azure InTune oder Gruppenrichtlinien) zu einer MSI-Datei konvertiert werden kann. Als Beispiel f\u00fchre ich den WatchGuard SSLVPN Client 12.10.4 an, welcher nicht als MSI Installer von WatchGuard bereitgestellt wird.<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[362],"tags":[1104,1102,546,655,1101,1103,304,89],"class_list":["post-24375","post","type-post","status-publish","format-standard","hentry","category-howto","tag-azure-intune","tag-exe","tag-gpo","tag-gruppenrichtlinie","tag-msi","tag-silent","tag-ssl-vpn","tag-sslvpn"],"_links":{"self":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/24375"}],"collection":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/comments?post=24375"}],"version-history":[{"count":16,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/24375\/revisions"}],"predecessor-version":[{"id":27387,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/24375\/revisions\/27387"}],"wp:attachment":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/media?parent=24375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/categories?post=24375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/tags?post=24375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}