【发布时间】:2020-06-15 17:06:45
【问题描述】:
使用 ADSI,我可以通过以下方式查询给定计算机上本地管理员组的成员(例如在 PowerShell 中):
([ADSI]"WinNT://computer-name/Administrators,Group").Invoke("members")
要做到这一点,据我所知,运行 PowerShell 脚本的用户需要在目标机器上具有管理员权限——也就是说,用户需要直接在 computer-name 的本地管理员组中间接访问(例如. 通过成为“域管理员”的成员)。
这让我感到惊讶,因为可以登录 computer-name 的非管理员帐户(例如,属于“域用户”的用户)可以打开本地用户和组应用程序,并查看本地管理员组。手动执行时不需要特定权限,但 ADSI 似乎需要它。
所以我的问题是:
- 使用 ADSI 是否需要管理员权限才能访问此信息,或者我做错了什么?
- 是否有不同的方法来以编程方式获取此信息,它需要比管理员帐户更少的权限? (如果有 PowerShell 中没有的解决方案也没关系,我的目标是 C#/.NET Core)
请注意,我想在其他工作站上远程运行它 - 而不仅仅是在本地工作站上。
【问题讨论】: