0

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

目前,我尝试运行它,当机器与我正在轮询的域位于同一域时,它有点工作。显示所有成员和嵌套成员。

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,它没有显示嵌套成员。

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

提前致谢!

4

2 回答 2

4

据我了解,您的问题在没有 CmdLets 的情况下使用 powershell 脚本递归地列出广告组中的用户中得到了部分回答

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

Import-Module activedirectory
Get-ADGroupMember groupName -Recursive
于 2012-05-10T03:55:57.373 回答
0

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

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

dsquery group -samid "组的 SamID" -gc | dsget 组 -memberof -expand

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

dsget group "组的专有名称" -gc | dsget 组 -memberof -expand

于 2013-10-23T11:51:19.463 回答