Public/Disconnect-IdentityOps.ps1

function Disconnect-IdentityOps {
    <#
    .SYNOPSIS
        Disconnects from Microsoft Graph and clears IdentityOps session state.
    .EXAMPLE
        Disconnect-IdentityOps
    #>

    [CmdletBinding()]
    param()

    try { Disconnect-MgGraph -ErrorAction SilentlyContinue } catch { }

    $script:IOConnection = @{
        Connected         = $false
        TenantId          = $null
        TenantName        = $null
        UserPrincipalName = $null
        AuthFlow          = $null
        ConnectedAt       = $null
        Scopes            = @()
    }

    Write-IOLog 'Disconnected from Microsoft Graph. Session cleared.' -Level Info
}