PowerShell detection scripts for Microsoft Intune Win32 apps. Each script checks whether a specific application is present and returns the exit codes Intune expects:
0: detected / installed1: not detected / missing
The scripts are grouped by application type and can be used individually or packaged with the shared helper module in modules/DetectionCommon.psm1.
| Category | Scripts |
|---|---|
| AV | 2 |
| Browsers (System) | 3 |
| Buisness | 1 |
| Developer | 13 |
| Media | 3 |
| Monitoring | 1 |
| Network Tools | 1 |
| Productivity | 17 |
| RMM | 8 |
| Tools | 14 |
| VPN | 6 |
Note:
Buisnessis kept as-is for compatibility with existing paths.
- Choose the detection script for the application you want to detect.
- If the script imports
modules/DetectionCommon.psm1, include themodulesfolder in the same package source. - In Intune, configure the Win32 app detection rule to run the script.
- Use PowerShell detection behavior where
0means installed and1means not installed.
Example shared-module pattern:
Import-Module "$PSScriptRoot/../modules/DetectionCommon.psm1" -Force
$detected = [bool](Get-AppByName '*App Name*') -or
(Test-FilePaths @('C:\Program Files\App\app.exe')) -or
(Test-ExecutableInPath @('app.exe'))
Resolve-Detection -Detected:$detected -Label 'App Name'Run repository validation before opening a pull request:
pwsh ./build/Test-Repository.ps1Create a release package locally:
pwsh ./build/pack.ps1 -Version v1.0.0The package is written to build/output/ and includes:
- detection scripts grouped by category
modules/DetectionCommon.psm1manifest.jsonwith package version, build time, script count, and script paths
Detection scripts should:
- use
exit 0when the target app is detected - use
exit 1when the target app is not detected - write short diagnostic output for local troubleshooting
- prefer
DetectionCommon.psm1for registry, file path, PATH lookup, and standardized exit behavior
GitHub Actions validates the repository on pull requests and pushes to main. The release workflow packages the scripts, tags the repository, and publishes a release zip when changes land on main or when manually triggered.
Contributions are welcome. Please keep detection behavior simple, deterministic, and compatible with Intune's exit-code expectations.
Distributed under the MIT License. See LICENSE for more information.
