Mar 01 2022 07:39 AM - edited Mar 01 2022 07:42 AM
Dear Microsoft Intune Friends,
Deploying a .msi app is a more or less simple matter in most cases. However, if you need to deploy an .exe app, it gets a bit more complicated. It takes a little art and science to deploy the app.
What exactly do I mean by that? Well, an .exe app can't just be uploaded to the Intune portal and then deployed. Before we even get started with Intune, we need to figure out how to install and uninstall the Win32 app. This means we need a machine (identical to the machines you manage with Intune) to perform a test install and uninstall on. The challenge here is that installation and uninstallation are performed "seamlessly", more precisely without interaction of a person.
I use Notepad++ as an example in this article. The installation and uninstallation of Notepad++ works something like this:
Installation (/S for silent - case sensitive):
npp.8.1.5.Installer.exe /S
We need the complete program path later in Intune.
"C:\Program Files (x86)\Notepad++\notepad++.exe"
The uninstallation works like this:
"C:\Program Files (x86)\Notepad++\uninstall.exe" /S (/S for silent - case sensitive)
With this knowledge in hand, we can move forward. No, not in Intune but on our local computer. I have already downloaded the executable file for the test installation. We cannot work with the .exe file in Intune, we have to make this Intune compatible.
For this we use the Microsoft Win32 Content Prep Tool from Microsoft (Thanks to the Microsoft team).
https://github.com/microsoft/Microsoft-Win32-Content-Prep-Tool
Now start a command prompt with elevated privileges and navigate to the IntuneWinAppUtil.exe file. Now you need the complete path to your Notepad++ .exe file and a path for the "packaged" Intune version. It may look something like this:
IntuneWinAppUtil.exe -c C:\Temp\NotepadPP -s C:\Temp\NotepadPP\npp.8.1.5.Installer.exe -o C:\Temp\NotepadPP_Packed -q
-c <setup_folder> Setup folder for all setup files. All files in this folder will be compressed into .intunewin file. Only the setup files for this app should be in this folder.
-s <setup_file> Setup file (e.g. setup.exe or setup.msi).
-o <output_file> Output folder for the generated .intunewin file.
-q is specified, it will be in quiet mode.
Now we move on to the Microsoft Endpoint Manager Admin Center.
https://endpoint.microsoft.com
Navigate to the Apps.
Select the platform in my example Windows.
Select Add.
Select Windows app (Win32).
Now locate your "packaged" Notepad++ file.
Enter some information about the app (especially the required fields).
Now our collected information on installation and uninstallation comes into play. If your app still has special return codes enter them as well.
Select operating system and and version, the rest is optional.
Now we need to configure the dection rules. We don't want Notepad++ to be installed on a
system where Notepad++ is already present.
There are no dependencies in my example.
This app does not replace any existing app.
Now you can specify who should receive this app I choose "All Devices" and "All Users".
Navigate to a system in Intune and click Sync. This is simply to force the installation of the app.
If you have the possibility to force the synchronization on the physical one, you can check faster if the installation works.
Now wait a few minutes and Voila the app is there!!!
Sure, that wasn't the huge highlight now. I just wanted to share my experience. I hope this article was useful.
Thank you for taking the time to read the article.
Best regards, Tom Wechsler
P.S. All scripts (#PowerShell, Azure CLI, #Terraform, #ARM) that I use can be found on github! https://github.com/tomwechsler
Mar 11 2022 08:52 PM
Hi, @TomWechsler Thank you for your post, the instruction is very clear and helpful. Can I check with you, regarding the install command and the uninstall command? Here's my post yesterday https://techcommunity.microsoft.com/t5/microsoft-intune/intunewin-file-install-command-and-uninstall... And today I found your post.
Trying to find out and create a standardise INTUNEWIN file installation guide, for all the diff .exe software.
Install command.
Appreciate if you can guide me what's the difference between the below 1 & 2.
1) msiexec /i "Softwarename.exe" /q
2) Softwarename.exe /sAll /rs /rps /msi /norestart /quiet EULA_ACCEPT=YES
I do have tried both install commands, but for command no 1 it seems like doesn't work, laptop run overnight I didn't see the below message popup.
For command no 2, I have tried twice and got it successfully.
It took me a long time can only get the software deployed. If without restarting the computer, I will not get the software deployed as you can see the below attached. You may see the timing, after receiving the 1st notification, I wait until 11 something, then I tried to restart the laptop, then the software only come in.
Below is my install command:
AcroRdrDC2200120085_en_US.exe /sAll /rs /rps /msi /norestart /quiet EULA_ACCEPT=YES
Uninstall command:
msiexec /x {AC76BA86-7AD7-1033-7B44-AC0F074E4100} /q
Below is my detection rules:
Mar 11 2022 10:27 PM
Feb 06 2023 05:48 AM
Mar 23 2023 01:59 PM
@TomWechsler
I have a question regarding packaging custom apps for Intune deployment. Your article was superbly written, but just like the MS documentation, it is missing one important area: Custom settings files. Many software installations require custom settings (serial numbers, custom settings, JSON configs, etc.). How do I package those with a deployment? After days of searching, I found only this mention:
When you're generating an .intunewin file, put any files you need to reference into a subfolder of the setup folder. Then, use a relative path to reference the specific file you need. For example:
Setup source folder: c:\testapp\v1.0
License file: c:\testapp\v1.0\licenses\license.txt
Refer to the license.txt file by using the relative path licenses\license.txt.
(found at Prepare a Win32 app to be uploaded to Microsoft Intune | Microsoft Learn)
I am working on setting up a Cisco AnyConnect VPN client for our users, and testing the waters for my company to understand the process and viability of moving to Intune vs. using our older SCCM methods. Now that many of our users are no longer working from offices, it would be highly beneficial for us to be able to move this workflow onto Intune and fully automate the process (under SCCM it's partially automated, partially guided by the helpdesk team for each user!). The key breakthrough would be for me to figure out how to include a couple of JSON files with the .intunewin file in the correct directory, and in theory AnyConnect would then install all the custom VPN configurations on first run by our users. I'm really struggling with this, but I can't imagine that this isn't a fairly simple (??) step that is just somehow missing from all the documentation. Any ideas?
Again, thank you for your expert guidance and insights, they are much appreciated.
Kindest regards,
Harro
Apr 27 2023 01:53 PM