If you haven’t already, I strongly recommend you to visit or maybe re-visit part 1 of the blog post series as there is valuable information you may need to know.
In this part 2 of streamlining applications with PSADT and Microsoft Intune. We’ll have a look at how to upload and configure Notepad++ to be deployed via Intune. We will also have a look at the differences between deploying Notepad++ via the PSADT deploy-application.exe and the ServiceUI.exe
Upload and configure Notepad++ in Intune
The last thing we did in part 1 of the blog post series was to create in Intunewin file using the Microsoft Win32 Content Prep Tool. An Intunewin file is needed to create a Win32 app in Intune and it’s basically a container for all the files needed to deploy an application or a script on a Windows device.
To make the Notepad++ application available in Intune, the intunewin file must be uploaded to Intune.
In the Intune admin center go to Apps:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-01.jpg)
In the platform section, select WIndows:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-02.jpg)
Click Add and in the App type dropdown box, select Windows app (win32):
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-03-1024x303.jpg)
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-04-1024x411.jpg)
Click Select:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-05-1024x576.jpg)
Click select app package file:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-06-1024x331.jpg)
Browse to your intunewin file:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-07-1024x230.jpg)
Select the intunewin file:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-08-1024x225.jpg)
Click OK:
App information
You must provide a name and a publisher, I usually also put in version information and a logo file:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-09-1024x618.jpg)
Click select image
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-10-1024x615.jpg)
Browse to your logo file:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-11-1024x507.jpg)
Click Next:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-13-1024x917.jpg)
In an upcoming article I’ll show how to get the logo file and how to assign a logo file to a new and existing application.
Program
Provide an install and uninstall command, this can be an EXE file, an MSI file or even a PS1 file, don’t forget the install/uninstall parameters:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-14-1024x573.jpg)
In the Allow available uninstall box, select yes or no. This enables or disables the uninstall feature of an application deployed via the Company Portal.
In the Install behavior, select system as this application is installed in system context. If you have applications that can be installed in user context, select that here. Applications that can be installed in user context usually does not require local admin privileges.
I usually leave the device restart behavior dropdown box on the default setting, as I configured the application install parameters to suppress any restart events. However, if it’s not possible to suppress restart events, you may want to change the setting.
I also leave the return code setting on it’s default settings. However, if you know that your application has a post-install return code that is not listed here, you can add to make Intune aware of it.
Requirements
Select the required operating system architecture and minimum operating system:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-15-1024x494.jpg)
Detection Rules
In the dropdown box, select use a custom detection script:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-16-1024x448.jpg)
It’s not required to use a custom detection script. However, I prefer using a custom script as it provides more flexibility to the Intune detection process and the script is easy to upload and assign. The native Intune detection feature usually involves a lot of clicking around in the portal to see what is being detected for Intune to determine the application install status.
Dependencies and Supersedence
With this application, nothing is configured here.
Assignments
Add a group as required and/or assigned. In this case, the group “App-install-Notepad++” has been configured as required, which means that any user/device that is a member of this group will have Notepad++ automatically installed. The group “All Devices” has been configured as an assigned group, which means that on all Windows devices, the Notepad++ application is available to be installed via Company Portal.
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-17-1024x423.jpg)
Review + create
Review the information provided. If everything looks good, click create
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-18-1024x695.jpg)
In the notifications area you will get a message when the intunewin file has been uploaded.
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-19-1024x234.jpg)
The Notepad++ application is now ready to be installed and/or uninstalled via Intune.
Custom detection script
As mentioned, I prefer custom detection scripts. The script I use is a script I have created myself, but there are a lot of different custom detection scripts out there and my script is not the single source of truth for custom detection scripts, and it might not cover every possible application detection scenario.
I will not cover every feature in this script, that may be something for a later article, I will however, cover what has been configured specifically for Notepad++ in this article.
In this case I have configured the $FileVersionDetect, $ProgramPath, $ProgramFile and $ProgramFileVersion variables.
If the $FileVersionDetect variable is needed, it can only contain either “equal” or “equalgreater”. This variable configures the script to detect if the Notepad++ exe file version is equal to the version configured in the $ProgramFileVersion variable or equal to or greater than the version configured in the $ProgramFileVersion.
The $ProgramPath variable should contain the install path of the application and the $ProgramFile variable should contain the file to do the version check on.
The $ProgramFileVersion variable should contain the version value you want Intune to detect, in this case version 8.6.9
![](https://kasperjohansen.net/wp-content/uploads/2024/10/DetectionScript-01.jpg)
There are different ways of obtaining the version information of a file, but the script is configured to use this command:
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("$ProgramPath\$ProgramFile").FileVersion
Running this command manually should provide you with the version information in the filename:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/DetectionScript-04-1024x246.jpg)
Notepad++ deployment
Manually
So, how does it look like on the user’s device, when installing apps using PSADT?
I have created a small screen recording that shows the Notepad++ install process. The account used in this demo has local administrative privileges, otherwise Notepad++ will not install.
In this screen recording the PSADT popup notification is informing the user that an application is being installed, this happens because we are executing the install process with local administrative privileges.
The notification popup box can be customized. It can be configured to have your company logo, and the informational text is localized based on the Windows native language, In part 3 of the series of articles, I will take a closer look at the configuration file in PSADT and among other things show how to change logo and force a specific language in the PSADT notifications.
Using native PSADT in Intune
Using the “native” PSADT method the install/uninstall commands must be configured like this:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-20.jpg)
This will work, as we are running the install/uninstall in system context, however if a user is logged on the device, they will not have any visual indications of the install/uninstall process, other than a small notification in the tray area/notification center.
This small screen recording show how this looks, when the application is deployed via Intune. I am using the Company Portal for the sake of this demo, if you have configured the application as a required application, the user’s experience is the same:
Using the ServiceUI approach in Intune
The ServiceUI.exe is a part of the Microsoft Deployment Toolkit, you can find the serviceui.exe in the C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64 folder, when Microsoft Deployment Toolkit has been installed. However, you can also find it as a part of the PSADT template files that I have made available on my Github.
The serviceui.exe provides a way for informational messages and similar notifications shown in system context, to be visible to the logged-on user. This means that we can use the built in messaging feature in PSADT to provide the user with a range of different informational messages before or during the install/uninstall process.
To make use of the serviceui.exe the install/uninstall looks slightly different compared to the native PSADT deployment:
![](https://kasperjohansen.net/wp-content/uploads/2024/10/Intune-Apps-21.jpg)
As mentioned earlier, the serviceui.exe is used as a kind of intermediate calling the deploy-application.exe file.
This small screen recording show how this looks, when the application is deployed via Intune using the ServiceUI approach. Again, I am using the Company Portal for the sake of this demo:
By now, you should have understand to upload and configure PSADT based application in Intune. If you want to provide your users with great looking application install and uninstall notifications, the combination of PSADT and serviceui.exe is the way to go.
This concludes this part 2 of how to streamline application management with PSADT and Intune. Feel free to reach out to me on X or on LinkedIn if you have any comments or questions.