2013-04-10 118 views
0

我正在嘗試構建一個列出當前在Active Directory中鎖定的所有帳戶的應用程序。據我瞭解,當帳戶被鎖定時,活動目錄將對象的LockedOut屬性更改爲true,並且依賴於其他方法的活動目錄不太可靠,例如看到lockoutTime>1是否可以向LDAP查詢擴展的Active Directory屬性?

我知道你可以看到這個屬性,以及更多,如果你運行get-aduser johndoe -properties *但我還沒有能夠通過LDAP查詢獲得所有的屬性。

換句話說,是否可以通過LDAP查詢來提取擴展AD屬性,例如lockedOut

回答

0

對不起,我以前的回答確實是錯的。然而,做一些研究後似乎:

  1. lockoutTime屬性被設置或者爲0可靠地表示該帳戶是鎖定。 (請參閱this article的備註部分)。

  2. msDS-User-Account-Control-Computed位字段屬性可靠地指示帳戶是否被鎖定(如果設置了0x10位),但它是一個計算值不能包含在搜索過濾器中。

所以最好的解決辦法可能是查詢該可以一個過濾器被鎖定像(&(objectClass=user)(lockoutTime>=1))所有賬戶,然後以編程的結果進一步通過檢查0x10msDS-User-Account-Control-Computed屬性過濾器,讓你有準確的結果。

this article的末尾列出了相同的解決方案。

+0

btw你需要使用SearchResult.GetDirectoryEntry()來獲取DirectoryEntry對象。然後使用$ directoryEntry.Properties [「msDS-User-Account-Control-Computed」]獲取該值。 – 2015-01-14 22:47:08