Know what mode every rule is really in, who set it, what it has blocked — and tune it without leaving a permanent hole behind.
Shipped in v3.3.1 ยท refined in v3.3.2
Attack Surface Reduction rules are some of the highest-value protections in Defender, and also some of the most awkward to reason about. A rule can be set by Intune, by Group Policy, or by someone running a PowerShell command on the machine in front of them. Those three sources live in different places, and tools that read only one of them quietly report the other two as “Not Configured”.
That is the difference between “this protection is off” and “this protection is on, but nobody in your fleet management tool knows it”. MDE Toolkit now reads all three and tells you which one won.
Rule state is merged from the Intune/MDM policy key, the classic Group Policy key, and Defender’s own live configuration. On a typical managed device this surfaces rules that were previously invisible.
Each row says where its setting came from — Intune / GPO, Group Policy, Local, or nothing. Locally-set rules are highlighted, because they are real configuration that will not survive a rebuild and is not enforced across the fleet.
The mode column used to say “Enabled”, which is ambiguous when it sits next to Audit and Warn. It now says exactly what Defender will do: Block, Audit, Warn, or Not configured.
When policy asks for one mode and Defender is enforcing another — a policy that hasn’t applied yet, or a local override — the row is flagged and the reason is spelled out.
Expand a row for the rule GUID, a plain-English explanation of where the setting came from, and any exclusions that apply to that specific rule.
Filter by mode, by source, or by free text. There is no longer a separate “Not Configured” section — those rules are rows in the same grid, so the picture is complete in one place.
A new sub-page under ASR Rules turns the raw event log into something you can triage.
Defender has no concept of a temporary exclusion and records nothing about who created one or why. Both of those are problems six months later, when nobody remembers why a folder is exempt from ransomware protection.
If you don’t want local admins creating permanent exclusions at all, you can say so. These are optional — a device with none of them set behaves exactly as before.
| Setting | Type | Default | What it does |
|---|---|---|---|
AsrAllowPermanentExclusions | DWORD | 1 | 0 removes Permanent, forcing every exclusion to expire. |
AsrAllowTemporaryExclusions | DWORD | 1 | 0 removes all temporary durations. Set both to 0 to disable exclusion creation entirely. |
AsrExclusionMaxHours | DWORD | 0 | Hard cap in hours; 0 means uncapped. Applied last, so the duration list below cannot widen it. |
AsrExclusionDurationsHours | SZ | 4,24,168,720 | Your own duration menu, in hours, comma-separated. |
ForceReadOnlyMode | DWORD | 0 | 1 blocks every exclusion write — creation and removal alike. |
Enforcement happens where the change is applied, not just in the dropdown, so the policy is not merely cosmetic. Temporary-only with a four-hour ceiling is two values.
reg add "HKLM\SOFTWARE\Policies\MDE-Toolkit" /v AsrAllowPermanentExclusions /t REG_DWORD /d 0 /f
reg add "HKLM\SOFTWARE\Policies\MDE-Toolkit" /v AsrExclusionMaxHours /t REG_DWORD /d 4 /f
| Setting | Default | Notes |
|---|---|---|
VisibilityAsrDashboardPage | 1 (admin only) | The ASR Overview grid. |
VisibilityAsrEventsPage | 1 (admin only) | Setting this to 3 gives standard users read-only event triage. Exclusion actions stay hidden regardless — they are gated on elevation independently. |
Values are 0 hidden, 1 administrators, 2 standard users, 3 both.