首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何过滤出DSQUERY中的子组?

如何过滤出DSQUERY中的子组?
EN

Stack Overflow用户
提问于 2020-05-25 14:28:34
回答 1查看 606关注 0票数 0

在DSQUERY中,当查找AD对象时,我希望找到一个DL (通讯组)或AD安全组,并找到它的所有用户(即使在子组中),然后筛选出这些子组。到目前为止我有这个

代码语言:javascript
复制
dsquery group -samid YourGroupName | dsget group -members -expand

从这里开始https://michlstechblog.info/blog/windows-get-all-groups-a-user-is-memberof-by-dsquerydsget-recursive/

但它包括了各个子组。是否有一种方法,我可以过滤它,以便只有用户保留?这个dsquery做了类似的事情,但是我不知道如何将它与上面的查询联系起来。

代码语言:javascript
复制
 | dsquery * -filter "(&(objectcategory=person)(objectclass=user))"

谢谢

编辑:

假设我有一个组YourGroupName,它有子组YourGroupNameAYourGroupNameB。这些子组有User1 (YourGroupNameA组)、User2 (YourGroupNameB组)、User3 (YourGroupNameB组)。

上面的第一个查询让我

代码语言:javascript
复制
YourGroupNameA
YourGroupNameB
User1
User2
User2

不过,我想要这样

代码语言:javascript
复制
User1
User2
User2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-25 16:50:21

如果安装RSAT,可以使用AD PowerShell cmdlet。要获取每个成员的名称,可以使用Get-ADGroupMember及其-Recursive参数:

代码语言:javascript
复制
Get-ADGroupMember YourGroupName -Recursive | Select Name

这将不包括嵌套组的名称。

要按组名而不是sAMAccountName进行搜索,可以使用Get-ADGroup并将其输送到Get-ADGroupMember中。

代码语言:javascript
复制
Get-ADGroup -Filter "Name -eq 'YourGroupName'" |
    Get-ADGroupMember -Recursive |
    Select -Expand Name

如果您更喜欢使用LDAP过滤器(不管怎么说,这都是在后台转换到的),那么您可以使用-LDAPFilter参数:

代码语言:javascript
复制
Get-ADGroup -LDAPFilter "(name=YourGroupName)" |
    Get-ADGroupMember -Recursive |
    Select -Expand Name

如果需要按显示名称(例如,Outlook中显示的内容)进行搜索,则可以用name替换displayName。他们通常是相同的价值,但他们可以是不同的。

若要将其表示为JSON字符串,请使用ConvertTo-Json

代码语言:javascript
复制
Get-ADGroup -Filter "Name -eq 'YourGroupName'" |
    Get-ADGroupMember -Recursive |
    Select -Expand Name |
    ConvertTo-Json
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62004513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档