Private/ConvertTo-NSPEntraImmutableId.ps1

function ConvertTo-NSPEntraImmutableId {
    <#
    .SYNOPSIS
        The Base64 immutable ID an AD user has under one anchor strategy, or $null if it has none.
    #>

    [CmdletBinding()]
    [OutputType([string])]
    param(
        [Parameter(Mandatory)]$ADUser,
        [Parameter(Mandatory)][ValidateSet('ObjectGuid', 'ConsistencyGuid', 'ConsistencyGuidWithObjectGuidFallback')][string]$Strategy
    )

    $consistency = @($ADUser.ConsistencyGuidBytes | Where-Object { $null -ne $_ })
    if ($Strategy -ne 'ObjectGuid' -and $consistency.Count) { return [Convert]::ToBase64String([byte[]]$consistency) }
    if ($Strategy -eq 'ConsistencyGuid') { return $null }
    [Convert]::ToBase64String(([guid]$ADUser.ObjectGUID).ToByteArray())
}