我正在使用DirectorySearcher
在Active Directory中發出LDAP請求,但由於篩選器無效,我一直在拋出ArgumentException
。很可能是因爲Active Directory中的accountExpires
屬性的錯誤形式。我想使用LDAP查找所有過期的帳戶,但是如何將DateTime.Now
轉換爲accountExpires
格式?這是我所做的,它引發了一個例外。如果我拿出accountExpires屬性,它不會產生任何問題:無效搜索在Active Directory中篩選
search.Filter = "(&(objectCategory=person)"+
"(!(objectClass=contact))"+
"(accountExpires>0)"+
"(accountExpires<=129383640000000000)"+
")";
我真的不知道該怎麼日期轉換爲accountExpires
格式,我相信來自一個錯誤的日期格式的問題。
任何想法?
「我真的不知道該怎麼日期轉換爲accountExpires格式」:accountExpires是一個Windows文件時間:你可以轉換到/自日期時間使用'DateTime.ToFileTimeUtc' /'DateTime.FromFileTimeUtc' – Joe
'accountExpires'條件是否僅過濾具有展期日期的帳戶?如果是,這種情況是否有效? : '(!(|(accountExpires = 0x7FFFFFFFFFFFFFFF)(accountExpires = 0)))'(根據http://ldapwiki.com/wiki/AccountExpires) – Esteban
@Esteban這有效,但它並沒有給我所有的結果我需要(15箇中只有一個)。但沒有例外 –