private/get-AadObjectId.ps1

function get-aadObjectId{
    Param(
        [Parameter(Mandatory=$true)][String]$upn
    )
    
    if($upn -match '@.*\.'){
        if(!$global:aadUserIdCache){
            $global:aadUserIdCache = @{}
        }
        if($global:aadUserIdCache.Keys -contains $upn){
            if($False -eq $global:aadUserIdCache.$upn){
                return $null
            }else{
                return $global:aadUserIdCache.$upn
            }
        }else{
            $aadUserId = $Null; $aadUserId = try{(new-GraphQuery -Method GET -Uri "https://graph.microsoft.com/v1.0/users/$($upn)?`$select=id").id}catch{}
            if($aadUserId){
                $global:aadUserIdCache.$upn = $aadUserId
                return $aadUserId
            }else{
                $global:aadUserIdCache.$upn = $False
                return $null
            }
        }
    }else{
        return $null
    }
}