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: $_"
    }
}