Как проверить, есть ли у пользователя права администратора - PullRequest
0 голосов
/ 20 апреля 2020

Мне интересно, есть ли правильный способ проверить с помощью Powershell, есть ли у пользователя права администратора?

Проблема в том, что у нас нет людей, добавленных в группу локальных администраторов. Когда пользователь является администратором, он регистрируется в Intune 'Device Admin'.

Так что я подумал, чтобы проверить, может ли пользователь выполнять RunAs, но я не смотрю, чтобы получить приглашение.

У кого-нибудь есть идея?

Заранее спасибо.

С уважением, Ральф

1 Ответ

0 голосов
/ 27 апреля 2020

Роль администратора устройств 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, но не, если пользователь сам является администратором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...