2012-03-01 60 views
2

我想向Microsoft的活動目錄(使用Java)發送一個搜索字符串,指出「給我所有擁有已啓用帳戶的用戶」。僅檢索活動目錄上的已啓用帳戶

目前,我有:

字符串SEARCH_STRING = 「(&(objectClass的=用戶))」;

但是,當然,這隻能給我AD的用戶。我也想只得到那些活躍的人。這是用Java編寫的,但我認爲它對於LDAP來說不重要。

+1

您需要弄清楚在您的上下文中「活動」意味着什麼,並編寫相應的LDAP查詢。既然你還沒有定義'積極'的含義,我懷疑這裏有人能幫助你。 – 2012-03-01 01:44:49

+0

感謝您的快速響應。代碼的哪一部分決定了'主動'的定義? (通常,我創建了一個LDAP Property對象,它充滿了用戶名,密碼和主機信息以獲得AD連接。然後,我創建了上下文和搜索查詢,並從AD得到我的迴應。我有點困惑定義什麼「主動」意味着什麼。)你能否闡明? (我可以提供我的代碼,但我不知道哪些部分會被認爲是相關的。) – Sal 2012-03-01 02:35:51

+1

您必須爲自己決定「主動」的含義以及如何映射到您可以查詢的LDAP屬性。我們不知道您的情況下「主動」是什麼意思。 – 2012-03-01 02:57:30

回答

9

爲了獲得啓用的用戶,您必須檢查userAccountControl屬性,特別是其第二位,它對應於ACCOUNTDISABLE標誌。 MS KB 305144

這可以用LDAP過濾器來完成這樣的:

(!(userAccountControl:1.2.840.113556.1.4.803:=2)) 

檢查這篇文章Filtering for Bit Fields的詳細信息,這項工作如何。

此外,您應該知道計算機帳戶是從用戶類型繼承的,因此您應該在您的過濾條件中添加一個條件以將其過濾掉。您還可能需要檢查NORMAL_ACCOUNT標誌位(512)以過濾其他類型的帳戶。

我不知道你是什麼意思的活躍用戶,所以我不能幫你在那裏。

+0

+1,我有半分鐘的精神:o) – JPBlanc 2012-03-01 07:56:57

相關問題