Modern Workplace consulting · Microsoft cloud architectureAdelaide, Australia
Implementation guide

Application Control for Business: build base and supplemental policies

A practical policy architecture and audit-to-enforce rollout using the App Control Wizard, PowerShell, Microsoft Intune and Defender telemetry.

Application Control for Business—formerly Windows Defender Application Control—lets an organisation define which code is trusted to run on Windows. The safest enterprise pattern is a stable base policy that defines the common trust boundary, with narrowly scoped supplemental policies that add approved business applications without constantly rewriting the base.

Base and supplemental policy model

Policy typePurposeDesign rule
Base policyDefines the primary trust boundary, policy options, Windows and Microsoft trust, managed installer or ISG choices.Keep stable, versioned and broadly applicable.
Supplemental policyAdds allow rules for a department, application set, vendor or exception.Can expand only one base policy; it cannot remove base allowances or add deny rules.
Additional base policyProvides an independent trust policy evaluated alongside other active base policies.Use only when an independent policy boundary is intentional.
Allow rules are cumulativeIf any active base policy, or a supplemental attached to a base policy, allows an application, the application can run unless an applicable deny rule takes precedence. Test the complete active policy set, not each XML file in isolation.

A maintainable enterprise pattern

Base policy

  • Windows and Microsoft-signed code.
  • Approved enterprise software publishers.
  • User-mode code integrity.
  • Audit mode for initial rollout.
  • Option 17 to allow supplementals.
  • Managed Installer only after operational design.

Supplemental policies

  • Core productivity applications.
  • Business-unit applications.
  • Approved vendor exceptions.
  • Temporary remediation with expiry.
  • Rules at Publisher or FilePublisher level where possible.
  • Hash rules only for immutable or exceptional files.

Avoid broad path rules in user-writable locations. A path rule that trusts a location where standard users can write may allow untrusted code to inherit that trust. Prefer signer-based rules and use file attributes or hashes only where necessary.

Create a base policy

The App Control Wizard is the safest authoring interface for most teams because it exposes template choice, policy options and rule levels clearly. For repeatable engineering, use PowerShell and store the source XML, generated binary, evidence and change record together.

$Work = "C:\AppControl"
$Base = Join-Path $Work "Enterprise-Base.xml"

Copy-Item `
  "C:\Windows\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Audit.xml" `
  $Base

# Create a unique multiple-policy ID and friendly name
Set-CIPolicyIdInfo -FilePath $Base `
  -PolicyName "Enterprise Windows Base - Audit" -ResetPolicyID

# Permit supplemental policies
Set-RuleOption -FilePath $Base -Option 17

# Optional: trust files installed by the approved managed installer
Set-RuleOption -FilePath $Base -Option 13

# Convert XML to a deployable policy file
ConvertFrom-CIPolicy -XmlFilePath $Base `
  -BinaryFilePath (Join-Path $Work "Enterprise-Base.cip")

The example starts from Microsoft’s audit template. Review every inherited option before deployment. In particular, decide whether script enforcement, ISG, managed installer, update-without-reboot and unsigned-policy behaviour match the enterprise threat model.

Managed Installer

Managed Installer can automatically trust applications installed by an approved software distribution system such as Intune or Configuration Manager. It improves manageability but does not replace the base rules required for Windows, boot components, kernel drivers and applications installed outside the managed path. Validate origin events and extended attributes before relying on it.

Create a supplemental policy

The base policy must allow supplementals. A supplemental policy must carry its own Policy ID and reference the exact Base Policy ID it expands.

$AppPath = "C:\Program Files\ApprovedLOBApp"
$Supp = "C:\AppControl\LOB-App-Supplemental.xml"
$Base = "C:\AppControl\Enterprise-Base.xml"

# Build allow rules from a trusted reference installation
New-CIPolicy -FilePath $Supp -ScanPath $AppPath `
  -Level Publisher -Fallback FilePublisher,Hash -UserPEs

# Convert the generated policy to a supplemental of the chosen base
Set-CIPolicyIdInfo -FilePath $Supp `
  -PolicyName "Approved LOB App - Supplemental" `
  -BasePolicyToSupplementPath $Base

ConvertFrom-CIPolicy -XmlFilePath $Supp `
  -BinaryFilePath "C:\AppControl\LOB-App-Supplemental.cip"
Reference-device hygieneGenerate rules from a clean, known-good device or signed vendor package. Scanning a long-lived administrator workstation can accidentally allow unrelated utilities, installers or malware.

Rule-level guidance

LevelUseTrade-off
PublisherTrust a well-governed publisher across products.Broad; verify publisher security and certificate handling.
FilePublisherTrust named products/files with version constraints.More maintenance, but safer for high-risk vendors.
SignedVersionConstrain a signed product to version attributes.Requires disciplined update testing.
HashAllow an exact unsigned or immutable binary.Breaks whenever the file changes.
FilePathAllow code from a protected path.Dangerous if users or untrusted processes can write there.

Deploy through Microsoft Intune

  1. Create the base policy under Endpoint security > App Control for Business.
  2. Use a built-in policy only when its immutable configuration matches the design; otherwise upload the custom XML.
  3. Assign the base to a small device ring and exclude emergency recovery devices.
  4. Create the supplemental policy by uploading its XML and assign it to the same device population as the base, further narrowed where the application is required.
  5. Validate policy application, active Policy IDs, Code Integrity events and application behaviour after restart.
  6. Expand through technical pilot, business pilot and controlled production rings.

Intune provides strong assignment and deployment capabilities but does not replace central App Control event collection. Use Microsoft Defender for Endpoint Advanced Hunting or another event-forwarding platform to collect allowed, audited and blocked execution evidence.

Move from audit to enforce

All material policy changes should first run in audit mode. Build a representative observation window that includes boot, sign-in, VPN, Office, browsers, security agents, device drivers, scheduled tasks, application updates, repair and rollback.

Remove audit mode only after evidence review

$Enforced = "C:\AppControl\Enterprise-Base-Enforced.xml"
Copy-Item "C:\AppControl\Enterprise-Base.xml" $Enforced

# Option 3 is Audit Mode; removing it enables enforcement
Set-RuleOption -FilePath $Enforced -Option 3 -Delete

Set-CIPolicyIdInfo -FilePath $Enforced `
  -PolicyName "Enterprise Windows Base - Enforced"

ConvertFrom-CIPolicy -XmlFilePath $Enforced `
  -BinaryFilePath "C:\AppControl\Enterprise-Base-Enforced.cip"
  • Boot, sign-in and security agents work after enforcement.
  • AllSigned PowerShell, Constrained Language Mode and App Control behaviour are jointly tested.
  • Managed Installer trust is verified with real Intune application installs and updates.
  • Helpdesk has a signed exception and recovery process.
  • Policy IDs, base references, versions and assignments are recorded.
  • Signed-policy removal and recovery are tested before signing production policy.
  • Rollback does not depend on an application that the policy itself could block.

Microsoft references

  1. Create a base policy with the Wizard
  2. Create a supplemental policy with the Wizard
  3. Manage App Control policies with Intune
  4. App Control deployment guide
  5. Use multiple App Control policies