Deploy Winget Apps Through Intune — The Easy Way

Introduction
In my previous post, I explained how I use Winget Auto Update (WAU) to keep apps up to date with minimal disruption. In this follow-up, I’ll show you how I deploy applications using WAU — specifically how I wrap the install script into a reusable .intunewin package and use command-line parameters to simplify deployment across multiple apps.
Step-by-Step: Deploying a Winget App via Intune
Prerequisites
- Winget Auto Update should already be deployed (I recommend deploying it as a Win32 app).
- WAU installs several scripts locally — we’ll reuse these to streamline app deployment.
Find the App ID
Use Winget to search for the app you want to deploy. For example, to deploy Microsoft PowerToys:
winget search 'PowerToys'
Example output:
Name Id Version Source
---------------------------------------------
PowerToys Microsoft.PowerToys 0.95.0 winget
Take note of the App ID: Microsoft.PowerToys.
Create a Blank Package
We need a dummy installer to create a .intunewin file:
New-Item -ItemType Directory -Name BlankApp -Path C:\
New-Item -ItemType File -Path C:\BlankApp -Name BlankFile
Package It with the Win32 Content Prep Tool
If you haven’t already, download and extract the Microsoft Win32 Content Prep Tool, then run:
.\IntuneWinAppUtil.exe -c C:\BlankApp -s BlankFile -o C:\BlankApp
This creates BlankFile.intunewin — ready to upload to Intune.
Configure the App in Intune
- Go to Intune > Apps > Windows > + Create
- Choose Windows App (Win32) and upload
BlankFile.intunewin - Fill in the app details:
- Name: PowerToys
- Description: Microsoft PowerToys is a set of free utilities for power users to streamline their Windows experience.
- Publisher: Microsoft
- App Version: Winget
- Category: Productivity
- Notes: This app is deployed via Winget.
- Logo: Optional, but nice to have!
Install Command
"%systemroot%\sysnative\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Winget-AutoUpdate\winget-install.ps1" -AppIDs Microsoft.PowerToys
This uses the 64-bit version of PowerShell to launch the already installed winget-install.ps1 script.
Uninstall Command
"%systemroot%\sysnative\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Winget-AutoUpdate\winget-install.ps1" -AppIDs Microsoft.PowerToys -Uninstall
Same as the install command, but with -Uninstall added.
Set Requirements
- Minimum OS: Windows 10 1607
- Other fields can be left as default unless your app has specific needs.
Detection Rules
- Download
Winget-Detect.ps1from the WAU repository - Edit line 11:
# Change app to detect [Application ID]
$AppToDetect = "Microsoft.PowerToys"
- Upload this script as your detection rule.
Set Dependencies
Set the Winget Auto Update Win32 package (from your previous deployment) as a dependency. This ensures all required scripts are present before installing the app.
Deploy More Apps Easily
To deploy other apps like Chrome or VS Code, just change the -AppIDs value in the install/uninstall commands. No need to create new packages!
Why This Works Well
- Reusable Package: One
.intunewinfile for many apps - Parameter-Driven: Easy to update or extend
- Centralized Logging: Simplifies troubleshooting
- Clean Maintenance: Fewer packages to manage
Final Thoughts
This method has made app deployment much more efficient for me. It’s scalable, clean, and integrates seamlessly with Intune and WAU. If you’re already using WAU for updates, this is a natural next step to keep your environment tidy and manageable.