在DSQUERY中,当查找AD对象时,我希望找到一个DL (通讯组)或AD安全组,并找到它的所有用户(即使在子组中),然后筛选出这些子组。到目前为止我有这个
dsquery group -samid YourGroupName | dsget group -members -expand但它包括了各个子组。是否有一种方法,我可以过滤它,以便只有用户保留?这个dsquery做了类似的事情,但是我不知道如何将它与上面的查询联系起来。
| dsquery * -filter "(&(objectcategory=person)(objectclass=user))"谢谢
编辑:
假设我有一个组YourGroupName,它有子组YourGroupNameA,YourGroupNameB。这些子组有User1 (YourGroupNameA组)、User2 (YourGroupNameB组)、User3 (YourGroupNameB组)。
上面的第一个查询让我
YourGroupNameA
YourGroupNameB
User1
User2
User2不过,我想要这样
User1
User2
User2发布于 2020-05-25 16:50:21
如果安装RSAT,可以使用AD PowerShell cmdlet。要获取每个成员的名称,可以使用Get-ADGroupMember及其-Recursive参数:
Get-ADGroupMember YourGroupName -Recursive | Select Name这将不包括嵌套组的名称。
要按组名而不是sAMAccountName进行搜索,可以使用Get-ADGroup并将其输送到Get-ADGroupMember中。
Get-ADGroup -Filter "Name -eq 'YourGroupName'" |
Get-ADGroupMember -Recursive |
Select -Expand Name如果您更喜欢使用LDAP过滤器(不管怎么说,这都是在后台转换到的),那么您可以使用-LDAPFilter参数:
Get-ADGroup -LDAPFilter "(name=YourGroupName)" |
Get-ADGroupMember -Recursive |
Select -Expand Name如果需要按显示名称(例如,Outlook中显示的内容)进行搜索,则可以用name替换displayName。他们通常是相同的价值,但他们可以是不同的。
若要将其表示为JSON字符串,请使用ConvertTo-Json
Get-ADGroup -Filter "Name -eq 'YourGroupName'" |
Get-ADGroupMember -Recursive |
Select -Expand Name |
ConvertTo-Jsonhttps://stackoverflow.com/questions/62004513
复制相似问题