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は、Windowsファイルの時間です:あなたはへ/から変換することができます'DateTime.ToFileTimeUtc' /' DateTime.FromFileTimeUtc'を使用したDateTime – Joe
期限切れの日付のアカウントのみをフィルタリングする場合、 'accountExpires'条件がありますか?そうであれば、この条件は機能しますか? : '(!(|(accountExpires = 0x7FFFFFFFFFFFFFFF)(accountExpires = 0)))'(http://ldapwiki.com/wiki/AccountExpiresによる) – Esteban
@Estebanこれは動作しますが、私は必要です(15人のうち1人だけ)。例外はありません –