PowerShell和检查本地管理员权限

PowerShell和检查本地管理员权限,powershell,active-directory,Powershell,Active Directory,我正在构建一个PowerShell脚本,该脚本需要在其运行的服务器上具有本地管理员权限,我需要检查用户是否具有这些权限 问题是,用户可能不直接在本地Administrators组中,而是在本地组中的域组中,并且具有这样的权限。然后,本地Administrators组可能会有多个域组作为成员 是否有一种方法可以“简单地”检查用户是否具有本地管理员权限,而无需在Administrators中的所有嵌套域组中通过Get-ADGroupMember等 编辑:例如,一个选项可以是一个简单的命令,如果用户不

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

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

是否有一种方法可以“简单地”检查用户是否具有本地管理员权限,而无需在Administrators中的所有嵌套域组中通过Get-ADGroupMember等


编辑:例如,一个选项可以是一个简单的命令,如果用户不是本地管理员,它将返回“拒绝访问”,但是这样的命令可以“安全”地执行,仅用于此目的。

我发现这种方法非常可爱


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

我正在尝试查找sid信息,以查看是否可以将其与本地计算机的权限级别进行比较。在你的编辑中,你似乎只是在寻找一张支票。我能想到的最简单的方法是尝试写入主分区的根目录-C:\这似乎可行,是的,但当您以用户Y的身份运行用户X时,如何指定它来检查其权限?这实际上是一个更难回答的问题。用户可以通过多种方式获得本地管理员权限,确定某个用户在某个系统上具有本地管理员的最佳方法是通过AD路径。我尝试使用C:\with New Item创建临时文件,并使用New PSDrive映射C:\with New PSDrive,但两个命令都不支持-Credential参数with PS v2.0(在此场景中,我仅限于使用)。手边还有其他选择吗?。如果您在用户计算机上运行脚本时测试管理员权限,我认为您可以使用我在这里给出的方法。如果您使用我提供的链接查看完整代码,Garrett制作的脚本实际上可以检测到用户是否以管理员身份运行PowerShell,使用admi重新启动管理性烫发。我无法理解这一点,最终采用了另一种方式——向用户X授予“执行”权限可以避免整个原始问题。
 If ( ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{"You're a wizard Harry!"
#DoAdminThingsHere
}
ELSE{"Not an Admin!"}