我想知道是否有适当的方法可以通过Powershell检查用户是否具有管理员权限?
问题是我们没有人添加到本地管理组中。当用户为管理员时,它会注册到Intune“设备管理员”中。
所以我在想的是检查用户是否可以执行RunAs,但我不愿意得到提示。
有人有主意吗?
谢谢。
关于, 拉尔夫
答案 0 :(得分:0)
AzureAD设备管理员角色被添加到本地管理员组,而不是单个设备管理员,因此您无法检查本地组的成员身份。而是尝试检查其UPN是否具有“全局”或“设备管理员”角色。一个快速且未经测试的示例(实现身份验证可能很困难):
$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会话是否已提升,但不会检查用户本身是否为管理员。