Policy Diff

Browser-only

Paste two exported Intune policies and see exactly what changed between them. Useful for reviewing drift, validating a baseline, or documenting a change before you apply it.

Runs entirely in your browser. The values you enter are processed locally and are never sent to IntuneBench. You can use this tool offline once the page has loaded.

How it works

Paste the JSON of two policies — either exported from the Intune admin center (Export JSON) or retrieved from Microsoft Graph. The tool matches settings by their stable settingDefinitionId and reports four outcomes: added, removed, changed and unchanged.

Keys are matched case-insensitively and values are compared after trimming, so cosmetic differences are not reported as changes. Booleans such as true and True are treated as equal.

What it understands

  • Settings catalog exports — the settings[] array with settingInstance, including choice, simple, group and collection values.
  • Simple settings maps — { "settings": { "key": "value" } }.
  • Settings arrays — { "settings": [ { "name": "...", "value": "..." } ] }.
  • Flat JSON — top-level scalar properties are treated as settings.

Output

The summary shows how many settings were added, removed, changed and unchanged. Each change is listed with the value from each policy, and the report can be copied as plain text for a ticket, pull request or change record.

Common problems

  • If no settings are found, check you pasted the full exported policy, not just the metadata.
  • Assignments and scope tags are metadata and are not compared — only settings are.
  • Use Swap to reverse A and B without re-pasting.

Related

Configuration Linter · OMA-URI Policy Builder · All tools

Something went wrong. Reload ×
↑↓ navigate ↵ open Esc close