Microsoft Windows ActiveDirectories LDAP獲取所有部門信息列表?

我的理解MS AD Server中LDAP的頂層是DC,DC下面是OU,OU下面才有用戶,部門信息是用戶的一個屬性,不知道有沒有一種類似獲取所有OU信息那樣的filter方法可以直接獲取這個DC下所有部門信息列表,難道是filter所有用戶信息後再對所有用戶的department屬性去重,這樣會不會很麻煩的。


部門信息聽說不是許可權管理的一部分,這個分組跟現實世界中的部門不一定吻合。


DC不是頂層

我不知道這裡題主寫的DC指的是Domain Controller還是指LDAP裡面RDN的屬性,如是後者,參考如下文章:

Distinguished Names?

msdn.microsoft.com

如果要查詢某個OU下所有用戶賬戶的部門屬性,可以用簡單的PowerShell命令來實現


一般頂層叫domain root,root下面會有container和OU兩種容器,一般會把用戶,組,計算機賬號都放在OU裡面。

如果你想獲得的部門信息是用戶屬性:department的話,那寫個LDAP filter ((objectClass=User)(!(objectClass=computer)))獲取所有用戶再取department這個屬性就行了,只是這樣的話算是heavy query (除非給department加index),每查一次都會讓CPU high一會兒,管理員可能會找你算賬……


如果部門信息有特殊標記在filter裡面寫就好了。不過一般所有部門都存在dc下的某個ou下面,而不是一個dc下多個ou都是部門。如果是這樣那麼用ldap語法做and吧。


推薦閱讀:

LDAP實施實戰

TAG:MicrosoftWindows | Windows開發 | LDAP |