如何检查用户是否具有管理员权限

时间:2020-04-20 15:13:35

标签: powershell

我想知道是否有适当的方法可以通过Powershell检查用户是否具有管理员权限?

问题是我们没有人添加到本地管理组中。当用户为管理员时,它会注册到Intune“设备管理员”中。

所以我在想的是检查用户是否可以执行RunAs,但我不愿意得到提示。

有人有主意吗?

谢谢。

关于, 拉尔夫

1 个答案:

答案 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会话是否已提升,但不会检查用户本身是否为管理员。