我有以下代码:
Get-ADUser -SearchBase ‘OU=test,OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM’ -Filter * | ForEach-Object {Add-ADGroupMember -Identity ‘myspecialgroup’ -Members $_ }
我希望它只能在那个特定的"测试" OU,没有子OU ......这可能吗?
答案 0 :(得分:3)
您所描述的区别是搜索的“范围”,其中Get-ADUser
由SearchScope
选项控制。默认值为Subtree
,它从搜索基础开始搜索整个树;您想要的是将搜索限制为基础对象的直接子项,SearchScope
OneLevel
:
Get-ADUser -SearchBase ‘OU=test,OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM’ \
-SearchScope OneLevel -Filter * |
ForEach-Object { Add-ADGroupMember -Identity ‘myspecialgroup’ -Members $_ }
SearchScope
还有第三个选项:Base
,它将“搜索”限制为您指定为SearchBase
的特定对象。在这种情况下,如果一个对象符合条件,该命令将返回该对象,如果没有(或根本不存在),则返回任何内容。