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()) } |