Роль администратора устройств AzureAD добавляется в локальную группу администраторов, а не в отдельных администраторов устройств, поэтому вы не можете проверить членство в локальной группе. Вместо этого попробуйте проверить, имеет ли их UPN роль глобального администратора или администратора устройства. Быстрый и непроверенный пример (реализация auth может быть затруднена):
$admins = Get-AzureADDirectoryRole | Where-Object {
'Device Administrator','Global Administrator' -contains $_.displayName
} | Foreach-Object {
Get-AzureADDirectoryRoleMember -ObjectId $_.ObjectId
}
$isAdmin = $admins | Foreach-Object {
Get-AzureADUser | If($_.UserPrincipalName -eq ((whoami.exe /UPN) | Out-String)) {
return true
}
}
В качестве альтернативы, как упомянуто mklement0, net session *>$null; $LASTEXITCODE -eq 0
проверит, повышен ли текущий сеанс PowerShell, но не, если пользователь сам является администратором.