Win32 Paket (aus exe erstellen)

Version 6.1 by Dimitri Rupp on 2026/06/11 11:07
Warning
For security reasons, the document is displayed in restricted mode as it is not the current version. There may be differences and errors due to this.

Um ein *.intunewin Paket zu erstellen welches über Intune ausgerollt werden kann wird zuerst das MS Win32 Content Prep Tool benötigt.

Dies kann von hier heruntergeladen werden: https://github.com/microsoft/Microsoft-Win32-Content-Prep-Tool

Nun benötigt man die *.exe Datei vom gewünschten Programm. Und legt diese in einem eigenen Ordner ab.

Nun die IntuneWinAppUtil.exe ausführen.

1633589994764-159.png

1. Den Folder angeben in dem die exe Datei liegt. WICHTIG: Der Source Ordner sollte idealerweise nur die Installationsdatei beinhalten, da beim Paketieren der komplette Ordner Inhalt mit in das Packe geschrieben wird) 

2. Den Namen der exe Datei inkl. der Endung angeben

3. Den Ausgabe Folder angeben 

4. Katalog Folder angeben

Es wird nun im Ausgabe Folder ein *.intunewin Paket erstellt.

Danach die Registerreiter durchgehen:

App Informationen: Den Namen sowie die Beschreibung der App angeben. Außerdem muss ein Publisher eingetragen werden. Am Schluß ein Logo hinzufügen.

Program: Install Command (Gute Webseite dafür ist: https://silentinstallhq.com/silent-install-knowledge-base/) sowie Uninstall Command eintragen und definieren ob es als System oder Benutzer installiert wird. Restart auf "no specific action" einstellen.

Detection Rules: Manually configured detection rules --> File --> Programmpfad und Programmstartdatei angeben

Save/Review und Fertig

Anleitung von Istvan für ein Win32 Paket inkl. Zertifikat und uninstall Script:

Voraussetzungen

MSI Datei besorgen, an Testsystem (z.B. eine virtuelle Win10, wo man mit Snapshots einfach zurückrollen kann) nicht signierte PS-Scripts erlauben: Set-ExecutionPolicy RemoteSigned

Install Script

# Restart Process using PowerShell 64-bit

If ($ENV:PROCESSOR_ARCHITEW6432 -eq "AMD64") {

    Try {

        &"$ENV:WINDIR\SysNative\WindowsPowershell\v1.0\PowerShell.exe" -File $PSCOMMANDPATH

    }

    Catch {

        Throw "Failed to start $PSCOMMANDPATH"

    }

    Exit

}

# Install KeePass-2.53.1

Start-Process Msiexec.exe -Wait -ArgumentList '/i KeePass-2.53.1.msi REBOOT=ReallySuppress /qn'

Uninstall Script

Nachdem es damit an Testsystem installiert wurde, muss man in Registry das UninstallString suchen, um ein uninstall Script zu erstellen, bei KeePass lag das hier:

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\BD86750637CD80E4B8B058ECB0890991\InstallProperties

Stop-Process -Name: dazu passt, was man im Taskmanager findet, wenn App läuft (kann als Befehl getestet werden: Stop-Process -Name KeePass -ErrorAction SilentlyContinue )

Mit Installscript installieren, App starten, bei laufende App Uninstallscript ausführen, (gerne mehrmals) sollte einwandfrei funktionieren, ohne Adminrechte.

# Restart Process using PowerShell 64-bit

If ($ENV:PROCESSOR_ARCHITEW6432 -eq "AMD64") {

    Try {

        &"$ENV:WINDIR\SysNative\WindowsPowershell\v1.0\PowerShell.exe" -File $PSCOMMANDPATH

    }

    Catch {

        Throw "Failed to start $PSCOMMANDPATH"

    }

    Exit

}

# Stop KeePass Process

Stop-Process -Name KeePass -ErrorAction SilentlyContinue

# Uninstall KeePass

Start-Process Msiexec.exe -wait -ArgumentList /'x {605768DB-DC73-4E08-8B0B-85CE0B989019} REBOOT=ReallySuppress /qn'

Code Signing Certificate für Domain User besorgen

An DC anmelden, MMC starten, add/remove snap-in, Certificates, My User Account, dann Request erstellen:

image-20230531155049-1.png

Ich habe ein Template für CodeSigning erstellt, welche 2 Jahren Gültigkeit hat:

image-20230531155102-2.png

Bald hat man ein CodeSigning Cert:

image-20230531155138-4.png

Script signieren

Powershell Script auf eine DC kopieren, signieren:

So kann man schauen, welche Certs zu Signieren nutzbar sind:

Get-ChildItem cert:\CurrentUser\My -codesigning

Variable cert bekommt als Wert das Thumbprint von unsere Codesigning Cert (erste in der Liste ist null, wenn mehr gibt’s, Wert anpassen):

$cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]

So wird installkeepass2531.ps1 Script mit diese Cert singniert:

Set-AuthenticodeSignature installkeepass2531.ps1 $cert

image-20230531155201-5.png

Intunewim Datei erstellen

Signierte Scripte, MSI und IntuneWinAppUtil in einen Folder kopieren, IntuneWinAppUtil aus PS ausführen, Source Folder, Installscript, Output Folder angeben, NO zu catalog folder:

image-20230531155208-6.png

Intune App erstellen

MS Intune Admin Center, Windows App, Add, Windows app (Win32), Intunewim Datei hochladen, Daten angeben, Logo hochladen:

image-20230531155214-7.png

Install command:
powershell.exe -noprofile -windowstyle hidden -file .\installkeepass2531.ps1

Uninstall command:
powershell.exe -noprofile -windowstyle hidden -file .\uninstallkeepass2531.ps1
(Screenshot hat „-executionpolicy bypass“, aber das ist nicht nötig, Script ist signiert)

image-20230531155228-8.png

Windows 10 1607 und 64bit wählen:

image-20230531155238-9.png

Detection Rule manually konfigurieren
image-20230531155247-10.png

Next, next, next, zu Gruppe zuordnen (wenn nötig, zuerst zu eine Testgruppe), Create!


Verwandte Themen

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [xwiki:IT-Wiki.Makros.Verwandte-Themen.WebHome]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.


Status: Migriert — Team-Review ausstehend · Owner: (festlegen) · Letzter Review: 2026-06-11