PowerShell并检查本地管理员权限

时间:2015-02-03 13:48:47

标签: powershell active-directory

我正在构建一个PowerShell脚本,该脚本需要在其运行的服务器上具有本地管理员权限,我需要检查用户是否具有这些权限。

问题是,用户可能不是直接在本地Administrators组中,而是在本地组中具有该权限的域组中。然后,本地Administrators组可能会将多个域组作为成员。

有没有办法简单地#34;检查用户是否具有本地管理员权限,而不通过Get-ADGroupMember管理员中的所有嵌套域组?

编辑:例如,一个选项可能是一个简单的命令,它返回"访问被拒绝"如果用户不是本地管理员,而是这样一个安全"为了这个目的而执行。

1 个答案:

答案 0 :(得分:1)

我在Garrett Serack's Git repository找到了这种非常可爱的方法。

 If ( ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{"You're a wizard Harry!"
#DoAdminThingsHere
}
ELSE{"Not an Admin!"}

似乎完成了工作。它使用.net类型确定用户的当前权限级别。