我有一个关于如何在运行这个PS语句时排除特定OU的问题。 这给了我域中的所有服务器。 我喜欢排除所谓的OU
OU =退休,OU = SERVER,DC = ABCCORP,DC-COM
尝试了一些过滤,但没有运气。
$ObjFilter = "(operatingsystem=*SERVER*)" $objSearch = New-Object System.DirectoryServices.DirectorySearcher $objSearch.PageSize = 15000 $objSearch.Filter = $ObjFilter $objSearch.SearchRoot = "LDAP://dc=ABCCORP,dc=com" $AllObj = $objSearch.FindAll() | Select-Object @{n='Name';e={$_.properties['name']}}
您可以根据LDAPpath将search结果传输到Where-Object并进行筛选。
更改:
$AllObj = $objSearch.FindAll() | Select-Object @{n='Name';e={$_.properties['name']}}
至:
$AllObj = $objSearch.FindAll() | Where {-not ($_.Path -match 'OU=RETIRED,OU=SERVER,DC=ABCCORP,dc=com')} | Select-Object @{n='Name';e={$_.properties['name']}}