EntraCaExclusionReport

1.0.0

Audit reporting for Microsoft Entra ID Conditional Access exclusions. Enumerates every Conditional
Access policy in a tenant and exports one CSV row per excluded user or group principal per policy,
so that every deliberate hole in a Conditional Access control is visible and attributable. Excluded
directory roles and excluded guest/external user types can be included o
Audit reporting for Microsoft Entra ID Conditional Access exclusions. Enumerates every Conditional
Access policy in a tenant and exports one CSV row per excluded user or group principal per policy,
so that every deliberate hole in a Conditional Access control is visible and attributable. Excluded
directory roles and excluded guest/external user types can be included on request. Group membership
is never enumerated or expanded, by design. The module is strictly read-only against the directory
and authenticates interactively via Microsoft Graph device code flow.
Show more

Minimum PowerShell version

7.0

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name EntraCaExclusionReport

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name EntraCaExclusionReport

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) Olamide Olaleye. All rights reserved.

Package Details

Author(s)

  • Olamide Olaleye

Tags

Entra EntraID AzureAD ConditionalAccess Security Audit MicrosoftGraph Compliance PSGallery

Functions

Get-EntraCaExclusionReport

PSEditions

Core

Dependencies

This module has no dependencies.

Release Notes

Initial public release.

Get-EntraCaExclusionReport enumerates every Conditional Access policy in an Entra ID tenant and exports one CSV row per excluded user or group principal per policy, so every deliberate exclusion from a Conditional Access control is visible and attributable.

- Strictly read-only against the directory. No create, update or delete against any Entra ID object; the only write is the CSV.
- Group membership is never enumerated or expanded. Group exclusions are reported by ObjectID and DisplayName only.
- Unresolved principals are never dropped. The raw identifier is preserved with a marked unresolved display name.
- Per-policy error isolation. A failure on one policy does not abort the run or truncate the report.
- A policy with no exclusions still produces one row, so the CSV is a complete assessment rather than a partial extract.
- Six-column CSV: PolicyName, State, ObjectID, UserPrincipalName, DisplayName, PrincipalType.
- Optional -IncludeExcludedRoles adds excluded directory roles and guest/external user types.
- Device code sign-in by default, or -UseExistingConnection to reuse a Graph session.

Requires PowerShell 7.0+ and the Microsoft Graph SDK (checked at runtime, not declared as RequiredModules so importing the module stays fast).

FileList

Version History

Version Downloads Last updated
1.0.0 (current version) 12 9/9/2026