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

时间:2020-02-01 22:14:36

标签: powershell permissions group-membership

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

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果域组是本地管理员组的一部分,则从设计上讲,该域组中的所有用户均为本地管理员,并且具有所有的权利和特权。因此,该代码块仍然适用。

您必须明确检查分配的用户权限。此内置没有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
#>

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

以登录用户身份远程运行此命令,不能使用PowerShell本机运行,它是Windows安全边界,因此,您需要MS SysInternals提供的PSExec.exe之类的东西才能尝试。

相关问题