Understanding Win32 App Requirements Rule in Microsoft Intune

Deploying Win32 apps in Microsoft Intune isn’t just about packaging and pushing software—it’s about ensuring the right conditions are met before installation. Intune’s Requirements Rules give admins precise control, from verifying OS architecture to checking disk space, registry keys, or custom PowerShell scripts. In this guide, we’ll break down each requirement type, show real‑world examples, and explain how to troubleshoot using Intune logs.

For step‑by‑step instructions on creating a Win32 application in Microsoft Intune, please refer to the dedicated blog post.

Table of contents

Win32 App Requirements Checklist

Before deploying Win32 applications with Microsoft Intune, it’s essential to confirm that all requirement rules are properly configured. These rules determine whether an app is applicable to a device, based on factors like OS architecture, minimum version, hardware resources, registry keys, or custom scripts. A quick checklist helps administrators validate settings, avoid deployment errors, and streamline troubleshooting.

  • ✅ Configure mandatory OS architecture & minimum OS version
  • ✅ Set optional rules (disk space, RAM, CPU speed, processors)
  • ✅ Add extended rules (File, Registry, Script) as needed
  • ✅ Verify applicability in IntuneManagementExtension.log
  • ✅ Troubleshoot failures with log excerpts

Win32 App – Mandatory Requirement

When creating a Win32 app in Microsoft Intune, you must configure the following mandatory requirement rules:

Operating System Architecture:

Select the architecture(s) required for installation.

Options: 32‑bit or 64‑bit

Minimum Operating System Version:

Define the lowest supported Windows version for the app.

Options: Windows 10, version 1607 and above

Intune | Wind32 App Requirements rule

Win32 App – Optional Requirement

In addition to mandatory rules, you can configure optional requirement rules in Microsoft Intune to control app installation based on device resources:

Minimum CPU Speed (MHz): Specify the minimum processor speed required.

Disk Space Required (MB): Specify the minimum free disk space needed on the system drive. Example: 1000 MB

Physical Memory Required (MB): Define the minimum RAM required for installation. Example: 4096 MB

Minimum Number of Logical Processors: Set the minimum number of logical processors required to run the app.

Win32 App – Additional Requirement Rules

Additional requirement rules provide extended options to configure Win32 app deployment in Microsoft Intune. These rules allow administrators to validate app installation conditions beyond the mandatory and optional checks.

Requirement Types: File

The File requirement rule Validates based on file or folder existence, date, version, or size. Example: Ensure a specific .exe file exists before installation.

How to Add a File‑Based Requirement Rule:

Configure the file path and condition (existence, version, size, or date).

Navigate to the Requirements page while creating or editing the Win32 app.

Click + Add at the bottom of the page.

Select File from the Requirement type options.

Intune - File Based Requirements Rule

You have to provide the following details when using this Requirement Rule.

  • Path: Enter the full path of the folder that contains the file or folder to detect.
  • File or folder: Enter the file or folder to detect.
  • Property: Select the type of rule used to validate the presence of the app.
  • File or folder exists
  • Date modified
  • Date created
  • String (version)
  • Size in MB

Requirement Type: Registry

The Registry requirement rule allows administrators to validate Win32 app installation conditions in Microsoft Intune based on registry settings. This can include:

  • Key existence – Verify if a specific registry key is present.
  • String comparison – Match or compare registry string values.
  • Version checks – Validate application or system versions stored in the registry.

How to Add a Registry‑Based Requirement Rule:

Configure the registry path, value, and condition (existence, comparison, or version).

Navigate to the Requirements page while configuring the Win32 app.

Click + Add at the bottom of the page.

Select Registry from the Requirement type options.

Intune - Registry based Win32 apps Requirements Rule

You have to provide the following details when using this detection rule.

  • Key path: The full path of the registry key that contains the value to detect.
  • Value name: The name of the registry value to detect. If this value is empty, the detection will happen on the key. The (default) value of a key will be used as the detection value if the detection method is other than file or folder existence.
  • Registry key requirement: Select the type of registry key comparison that’s used to validate the presence of the app. The following comparison types are available.
  • Key exists
  • The key does not exist
  • String comparison
  • Version comparison
  • Integer comparison

Requirement Type: Script

The Script requirement rule provides advanced options to evaluate Win32 app installation conditions in Microsoft Intune that cannot be validated using file or registry checks. With this rule, administrators can use a PowerShell script to determine whether an application should install, based on custom logic.

Common Use Cases:

  • Validate complex conditions (e.g., device type, custom configurations).
  • Check for specific values or states not available via file/registry rules.
  • Implement organization‑specific compliance checks before deployment.

How to Add a Script‑Based Requirement Rule:

Upload or paste the PowerShell script and define the evaluation logic.

Navigate to the Requirements page while configuring the Win32 app.

Click + Add at the bottom of the page.

Select Script from the Requirement type options.

Intune - Script Based win32 apps Requirements Rule

We have to provide the following mandatory details when using script requirement rules.

  • Script Name: Enter the name of the Script. For example, check Disk Space
  • Script File: Click on the Browse button and select the script file.
  • Select Output Data Type: Select the output data type. The following output data types are currently available.
  • String
  • Date and Time
  • Integer
  • Floating Point
  • Version
  • Boolean

Win32 App – Monitoring Requirement Rule Behavior

Now that we understand how requirement rules are evaluated on the client side, it’s important to know how to monitor their behavior during Win32 app deployment in Microsoft Intune.

All details related to Win32 app installation and requirement evaluation are logged in the IntuneManagementExtension.log file. By analyzing this log, administrators can decode the exact steps Intune takes when validating requirements.

While you typically don’t need to review logs during a successful deployment, this information becomes invaluable when troubleshooting deployment failures, requirement mismatches, or applicability issues.

Key Takeaway:

Reviewing logs helps identify why an app failed to install or was marked as not applicable.

Requirement rules are always evaluated at the client end.

The IntuneManagementExtension.log provides step‑by‑step visibility into requirement checks.

Monitoring Mandatory / Optional Requirements Rules Evaluation

We have configured both mandatory and optional requirements here.

Operating System architecture: 64-bit

Minimum operating system: Windows 10 1607

Disk space required: 5000 MB

Intune Win32 App Files based requirements rule

When the application installation is initiated through the Company Portal, the configured requirement rules are quickly logged in the Intune Management Extension under the Check Applicability section.

IntuneManagementExtension.log file showing win32 app requirement rules evaluation

Below are complete excerpts from the IntuneManagementExtension.log that capture the Check Applicability section during a Win32 app deployment. These entries show how requirement rules are evaluated on the client device, including whether the app meets the configured mandatory, optional, file, registry, or script‑based conditions.

Reviewing these logs helps administrators:

Troubleshoot deployment failures linked to requirement rules.

Understand the step‑by‑step evaluation process.

Identify why an app was marked as applicable or not applicable.

<![LOG[[Win32App] ===Step=== Check applicability]LOG]!><time="22:23:01.9740518" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="16" file="">
<![LOG[[Win32App] applicationRequirementMetadata RequiredOSArchitecture: 2, client Is64BitOperatingSystem: True, nativeMachine IsArm64: False, applicability: Applicable.]LOG]!><time="22:23:01.9825346" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="16" file="">
<![LOG[[Win32App] applicationRequirementMetadata expected version: 10.0.14393, client version: 10.0.19042, applicability: Applicable.]LOG]!><time="22:23:02.0233144" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="16" file="">
<![LOG[[Win32App] applicationRequirementMetadata RequiredFreespace: 5,000.00, availableFreeSpaceInMB: 156,379.00 on Drive C:\, applicability: Applicable.]LOG]!><time="22:23:02.0869701" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="16" file="">
<![LOG[[Win32App] applicationRequirementMetadata.RequiredMemory is , skip check.]LOG]!><time="22:23:02.0879780" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="16" file="">
<![LOG[[Win32App] applicationRequirementMetadata.RequiredCPUSpeed is , skip check.]LOG]!><time="22:23:02.0879780" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="16" file="">
<![LOG[[Win32App] applicationRequirementMetadata.MinimumNumberOfProcessors is , skip check.]LOG]!><time="22:23:02.0889723" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="16" file="">


Monitoring File Requirement Rules Evaluation

We configured the following requirement rule: the application will install only if the D:\Program Files folder exists.

File requirement rules in win32 app

The IntuneManagementExtension.log confirms that the requirement rule was evaluated and the specified folder exists. As a result, the requirement was successfully met, allowing the application installation to proceed.

intunemanagementextension.log showing win32 app file requirement rules

Below are complete excerpts from the IntuneManagementExtension.log that capture the Check Extended Requirement section during a Win32 app deployment. These entries illustrate how Intune evaluates extended requirement rules such as File, Registry, and Script‑based checks on the client device.

<![LOG[[Win32App] ===Step=== Check Extended requirement rules]LOG]!><time="23:35:17.6812330" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] ProcessRequirementRules starts]LOG]!><time="23:35:17.6821853" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] ProcessRequirementRules Parsing InstallEx...]LOG]!><time="23:35:17.6821853" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] RequirementType 2]LOG]!><time="23:35:18.1737361" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] Start requirementManager SideCarFileRequirementManager]LOG]!><time="23:35:18.1747403" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] Disable Wow64FsRedirection]LOG]!><time="23:35:18.5346625" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] Checked under Path: D:\, filePath:D:\Program Files, agent was checking under expanded: D:\Program Files, applicationDetected: True]LOG]!><time="23:35:18.5359328" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] Revert Wow64FsRedirection]LOG]!><time="23:35:18.5369375" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] requirementManager SideCarFileRequirementManager got applicationDetectedByCurrentRule: True as system]LOG]!><time="23:35:18.5379325" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] Completed detectionManager SideCarFileRequirementManager, applicationDetectedByCurrentRule: True]LOG]!><time="23:35:18.5379325" date="4-16-2022" component="IntuneManagementExtension" context="" type="1" thread="8" file="">
<![LOG[[Win32App] Extended requirement rules processing complete. isApplicationApplicable: Applicable]LOG]!

Monitoring Registry requirement rules Evaluation

The behavior of registry‑based requirement rules is almost identical to file or folder‑based rules, as both validate the existence or properties of specific system resources before allowing application installation.

Monitoring Script Requirement Rules Evaluation

For this deployment scenario, we considered the following requirement:

The application must be installed on the D: drive, but the requirement rule is configured to ensure that the D: drive is not a CD/DVD or removable storage device. This validation is achieved using a PowerShell script, which checks the drive type before allowing installation.

Key Points:

If the script fails or returns false, the app is marked as not applicable.

Script rules extend Intune’s flexibility beyond file or registry checks.

PowerShell can validate custom conditions such as drive type, device configuration, or organizational policies.

If the script returns a positive result (e.g., confirming D: is a fixed drive), the requirement is met and installation proceeds.

Intune Win32 App - Requirement rule - Script

Here is the PowerShell script we used to validate custom Intune Win32 app requirements. The script checks whether the D: drive is a local disk. It writes the output to STDOUT, and the requirement rule is configured to confirm that the returned value equals "LocalDisk".

foreach ($drive in $ldisk)
{
    if ($drive.DeviceID -eq "D:") {
        if ($drive.DriveType -eq 3)
            {Write-Host "LocalDisk"
            Exit} 
        else 
           { Write-Host "NotLocalDisk"
            Exit}
    }
 }
 Write-Host "DriveNotFound"

The IntuneManagementExtension.log confirms that the requirement rule was evaluated, the PowerShell script executed successfully, and the value "LocalDisk" was returned. Therefore, the requirement was met, and the application installation proceeded as expected.

IntuneManagementExtension.log showing win32 app script requirement rules evaluation

Here are the excerpts from IntuneManagementExtension log for Check Extended requirements.

<![LOG[[Win32App] ===Step=== Check Extended requirement rules]LOG]!><time="21:44:06.4435116" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] ProcessRequirementRules starts]LOG]!><time="21:44:06.4445104" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] ProcessRequirementRules Parsing InstallEx...]LOG]!><time="21:44:06.4465216" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] RequirementType 3]LOG]!><time="21:44:06.4465216" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] Start requirementManager SideCarScriptRequirementManager]LOG]!><time="21:44:06.5614100" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] Requirement script file C:\Program Files (x86)\Microsoft Intune Management Extension\Content\DetectionScripts\4c153c53-913e-4a75-92b1-27e53ca03876_1.ps1 is saved.]LOG]!><time="21:44:08.4243079" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG["C:\Program Files (x86)\Microsoft Intune Management Extension\agentexecutor.exe" -powershellDetection "C:\Program Files (x86)\Microsoft Intune Management Extension\Content\DetectionScripts\4c153c53-913e-4a75-92b1-27e53ca03876_1.ps1" "C:\Program Files (x86)\Microsoft Intune Management Extension\Content\DetectionScripts\4c153c53-913e-4a75-92b1-27e53ca03876_1.ps1quotedResultFilePath.txt" "C:\Program Files (x86)\Microsoft Intune Management Extension\Content\DetectionScripts\4c153c53-913e-4a75-92b1-27e53ca03876_1.ps1quotedErrorFilePath.txt" "C:\Program Files (x86)\Microsoft Intune Management Extension\Content\DetectionScripts\4c153c53-913e-4a75-92b1-27e53ca03876_1.ps1quotedTimeoutFilePath.txt" 3600 "C:\Windows\System32\WindowsPowerShell\v1.0" 0 "C:\Program Files (x86)\Microsoft Intune Management Extension\Content\DetectionScripts\4c153c53-913e-4a75-92b1-27e53ca03876_1.ps1quotedExitCodeFilePath.txt" False]LOG]!><time="21:44:08.9273914" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] SideCarScriptRequirementManager create files for outputs]LOG]!><time="21:44:08.9273914" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] SideCarScriptRequirementManager Launch powershell executor in machine session]LOG]!><time="21:44:08.9313818" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] SideCarScriptRequirementManager Create proxy process successfully.]LOG]!><time="21:44:09.1625970" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] SideCarScriptRequirementManager process id = 10236]LOG]!><time="21:44:09.1636001" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] SideCarScriptRequirementManager Powershell execution process timeout milliseconds: 3600000.]LOG]!><time="21:44:09.1636001" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] SideCarScriptRequirementManager Execution is done, collecting result]LOG]!><time="21:44:34.4877644" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] SideCarScriptRequirementManager Powershell execution got lpExitCode: 0 lastWin32Error: 0]LOG]!><time="21:44:34.4887625" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] SideCarScriptRequirementManager Powershell ExitCode: 0]LOG]!><time="21:44:35.1416076" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] Requirement script file C:\Program Files (x86)\Microsoft Intune Management Extension\Content\DetectionScripts\4c153c53-913e-4a75-92b1-27e53ca03876_1.ps1quotedExitCodeFilePath.txt is deleted.]LOG]!><time="21:44:35.1427095" date="4-17-2022" component="IntuneManagementExtension" context="" type="1" thread="3" file="">
<![LOG[[Win32App] Checked Powershell script result: LocalDisk


Conclusion

By mastering Win32 app requirements rules in Microsoft Intune, administrators can ensure that applications install only under the right conditions—whether based on OS architecture, minimum version checks, disk space, registry keys, or custom PowerShell scripts. Proper configuration of mandatory and optional rules reduces deployment errors, improves compliance, and streamlines endpoint management. Combined with effective use of IntuneManagementExtension logs for troubleshooting, these rules give IT teams precise control over application deployment, device targeting, and user experience. Leveraging Intune’s flexibility helps organizations achieve more reliable modern management and secure Windows app delivery.

Related Posts

Subscribe to Techuisitive Newsletter

Be the first to know about our new blog posts. Get our newsletters directly in your inbox and stay up to date about Modern Desktop Management technologies & news.

Scroll to Top