尝试在Active PowerShell目录中获取组中的用户的嵌套列表

时间:2012-05-09 18:02:07

标签: powershell active-directory multiple-domains adgroup

我正在尝试获取活动目录中组中的用户列表。我们有多个域名。我想从一个中心位置运行它,该位置将轮询每个组的每个域。另外,我希望它也能显示嵌套成员。

目前,我尝试运行此功能,当机器与我正在轮询的域位于同一域时,它就有用了。显示所有成员和嵌套成员。

dsquery group -samid "group name" | dsget group -members -expand >c:\list.txt

"cn=username,ou=users,dc=domain1,dc=com"

但是当我尝试轮询另一个域时,没有输出。

dsquery group -samid "cn=group name,cn=users,dc=domain2,dc=com" | dsget group -members -expand >c:\list.txt

dsget failed: 'target object for this command' is  missing

然后,如果我尝试没有相同的ID,我会得到一个输出。

dsquery group "cn=group name,cn=users,dc=domain2,dc=com" | dsget group -members -expand >c:\list.txt

"CN=username2,OU=users,DC=domain2,DC=com"
"CN=S-1-5-21,CN=ForeignSecurityPrincipals,DC=domain1,DC=com"
"cn=group name,ou=users,dc=domain2,dc=com"

所以我得到了ID,而不是显示嵌套成员。

我该怎么做才能解决正确的嵌套成员和非正确的问题?另外,我如何让它在多个域中轮询多个组名?或者我应该把它全部分开并一次做一个?

提前致谢!

2 个答案:

答案 0 :(得分:4)

据我所知,您的问题部分在Listing users in ad group recursively with powershell script without CmdLets

中得到了解答

但如果你在W2K8R2环境中工作,你可以使用Active-Directory模块。

Import-Module activedirectory
Get-ADGroupMember groupName -Recursive

答案 1 :(得分:0)

在所有情况下,您都需要使用GC“使用全局目录选项”

查询结果
  • 如果您使用SamID作为输入,请使用以下:

dsquery group -samid“group的SamID” -gc | dsget group -memberof -expand

  • 但如果您将DistinguishedName作为输入,请使用以下内容:

dsget 群组“群组的专有名称” -gc | dsget group -memberof -expand