我正在尝试获取活动目录中组中的用户列表。我们有多个域名。我想从一个中心位置运行它,该位置将轮询每个组的每个域。另外,我希望它也能显示嵌套成员。
目前,我尝试运行此功能,当机器与我正在轮询的域位于同一域时,它就有用了。显示所有成员和嵌套成员。
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,而不是显示嵌套成员。
我该怎么做才能解决正确的嵌套成员和非正确的问题?另外,我如何让它在多个域中轮询多个组名?或者我应该把它全部分开并一次做一个?
提前致谢!
答案 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“使用全局目录选项”
查询结果dsquery group -samid“group的SamID” -gc | dsget group -memberof -expand
dsget 群组“群组的专有名称” -gc | dsget group -memberof -expand