private/get-aadObject.ps1
function get-aadObject{ Param( [Parameter(Mandatory=$true)][String]$id ) if(!$global:aadObjectCache){ $global:aadObjectCache = @{} } if($global:aadObjectCache.Keys -contains $id){ if($False -eq $global:aadObjectCache.$id){ return $null }else{ return $global:aadObjectCache.$id } }else{ if($id.IndexOf("@") -ne -1){ $aadObj = $Null; $aadObj = try{(new-GraphQuery -Method GET -Uri "$($global:octo.graphUrl)/v1.0/users/$($id)?`$select=id,userPrincipalName,displayName")}catch{} }else{ $aadObj = $Null; $aadObj = try{(new-GraphQuery -Method GET -Uri "$($global:octo.graphUrl)/v1.0/directoryObjects/$($id)?`$select=id,userPrincipalName,displayName")}catch{} } if($aadObj){ $global:aadObjectCache.$id = $aadObj return $aadObj }else{ $global:aadObjectCache.$id = $False return $null } } } |