想象在Windows 10计算机上的SYSTEM帐户下运行一个Powershell脚本,并检查当前登录的域用户。没什么。
现在:我要检查此登录用户是否对此计算机具有管理员权限。到目前为止,我能找到的每一项检查都只是在查看“ .IsInRole([Security.Principal.WindowsBuiltInRole] ::'Administrator')”。 但这仅检查用户是否是本地组“管理员”的直接成员。但是有可能在本地Administrators组中有一个域组,而用户却是该域组的成员。因此,即使他不是Administrators组的直接成员,他也是admin。
如何同时检查两者?我只是想检查是否有人是管理员,无论这些管理员权限来自何处。该检查也将在SYSTEM帐户下运行,而不是在受影响的用户帐户本身下运行。
有什么想法吗?
答案 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之类的东西才能尝试。