Win32_GroupUser不从域安全组返回嵌套组

时间:2016-04-25 22:50:33

标签: c# powershell wmi

当我使用Win32_GroupUser请求本地安全组的成员时,我也会获得嵌套域组。

E.g。在PowerShell中,这个查询在成员服务器上:

Get-WmiObject Win32_GroupUser -Filter "GroupComponent='Win32_Group.Domain=`"myserver`",Name=`"LocalTestGroup02`"'" | select PartComponent

返回用户和域帐户:

PartComponent                                                     
-------------                                                     
\\myserver\root\cimv2:Win32_Group.Domain="FLIP",Name="TestGroup"  
\\myserver\root\cimv2:Win32_UserAccount.Domain="FLIP",Name="test5"
\\myserver\root\cimv2:Win32_UserAccount.Domain="FLIP",Name="test4"

相同的查询,但这次是在域控制器上以及域安全组的成员身份:

Get-WmiObject Win32_GroupUser -Filter "GroupComponent='Win32_Group.Domain=`"FLIP`",Name=`"TestGroup2`"'" | select PartComponent

仅返回用户帐户,尽管其成员与上面的本地组完全相同。

PartComponent
------------
\\VW-DC01\root\cimv2:Win32_UserAccount.Domain="FLIP",Name="test4"                                            
\\VW-DC01\root\cimv2:Win32_UserAccount.Domain="FLIP",Name="test5"  

我看到了这种行为

  • 在本地执行时以及使用-ComputerName参数
  • 从其他服务器执行
  • 还使用System.Management
  • 的C#应用​​程序
  • 在域本地,全局和通用安全组

有人知道为什么吗? 更重要的是,我可以更改此行为,以便我还可以查看域组中的嵌套组吗?

我试图枚举本地和域组的成员资格,包括嵌套组中的成员。

PS:我知道我也可以使用Get-ADGroupMember cmdlet,但这不是一个选项。我只与目标服务器建立了WMI连接,而不是LDAP或WinRM。

THX,

1 个答案:

答案 0 :(得分:0)

您只能在计算机本身上看到本地组(即非域),而不能从域控制器看到。
至于看嵌套组,除了滚动你自己的递归函数,你可以看看Quest Active Directory tools 函数是Get-QADGroupMember