检查当前登录用户是否具有管理员权限

Fab*_*ter 5 permissions powershell group-membership

想象一下,有一个 Powershell 脚本在 Windows 10 计算机上的 SYSTEM 帐户下运行,并检查当前登录的是哪个域用户。没什么大不了。

现在:我想检查该登录用户是否具有该计算机的管理员权限。到目前为止我能找到的每一项检查都只查看“.IsInRole([Security.Principal.WindowsBuiltInRole]::'Administrator')”。但这仅检查用户是否是本地组“管理员”的直接成员。但本地管理员组内可能存在一个域组,而用户是该域组的成员。所以他是管理员,即使他不是管理员组的直接成员。

如何同时检查两者?我只是想检查某人是否是管理员,无论这些管理员权限来自哪里。此检查也将在 SYSTEM 帐户下运行,而不是在受影响的用户帐户本身下运行。

有任何想法吗?

pos*_*ote 1

如果域组是本地管理员组的一部分,则根据设计,该域组中的所有用户都是本地管理员,并且拥有这意味着的所有权利和特权。因此,该代码块仍然适用。

您必须明确检查分配的用户权限和特权。此内置命令没有 cmdlet,因此您必须为其编写代码。要查看您的权利和特权,您可以使用旧的whoami.exe ...

whoami /priv

# Results
<#
PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                          State
============================= ==================================== ========
SeShutdownPrivilege           Shut down the system                 Disabled
SeChangeNotifyPrivilege       Bypass traverse checking             Enabled
SeUndockPrivilege             Remove computer from docking station Disabled
SeIncreaseWorkingSetPrivilege Increase a process working set       Disabled
SeTimeZonePrivilege           Change the time zone                 Disabled
#>
Run Code Online (Sandbox Code Playgroud)

...然后将其与通常用于管理操作的 Windows 权限列表进行比较。

以登录用户身份远程运行它,无法使用 PowerShell 本机完成,它是 Windows 安全边界,因此,您需要 MS SysInternals 中的 PSExec.exe 之类的东西来尝试。