Public/Get-NLBaselineCAPoliciesList.ps1
|
function Get-NLBaselineCAPoliciesList { <# .SYNOPSIS List all Conditional Access policies .DESCRIPTION Lists all Conditional Access policies in the tenant with details #> [CmdletBinding()] param() try { # Check connection $context = Get-MgContext -ErrorAction SilentlyContinue if (-not $context -or -not $context.TenantId) { Write-Host "Not connected to Microsoft 365. Connecting..." -ForegroundColor Yellow Write-Host "" $connection = Connect-NLBaselineCA if (-not $connection) { Write-Error "Cannot connect to Microsoft 365" return } $context = Get-MgContext } Write-Host "Retrieving Conditional Access policies..." -ForegroundColor Yellow Write-Host "" # Get policies using helper function with REST API fallback $policies = Get-AllConditionalAccessPolicies if (-not $policies -or $policies.Count -eq 0) { Write-Host "No policies found." -ForegroundColor Yellow return } Write-Host "Found $($policies.Count) policy/policies:" -ForegroundColor Green Write-Host "" foreach ($policy in $policies) { $state = if ($policy.state) { $policy.state } else { "Unknown" } $stateColor = switch ($state) { "enabled" { "Green" } "enabledForReportingButNotEnforced" { "Yellow" } "disabled" { "Gray" } default { "White" } } Write-Host " $($policy.displayName)" -ForegroundColor White Write-Host " State: $state" -ForegroundColor $stateColor Write-Host " ID: $($policy.id)" -ForegroundColor Gray Write-Host "" } } catch { Write-Error "Error listing policies: $_" } } |