簡體   English   中英

使用DirectorySearcher API讀取/處理大量數據

[英]Read / Process large number of data using DirectorySearcher API

上下文

  • OU中有200k用戶的Active Directory實例

  • 在我們的領域內增長到100萬的潛力

不是這個方面的專家。 我正在嘗試針對需要輪詢AD和

  • 檢查PwdLastSet和LastLogonDate屬性

  • 根據每個用戶的價值(鎖定帳戶,發送電子郵件等)做出6個不同的決策(策略)

理想情況下,如果是數據庫,則可以選擇

  • 打開連接
  • 讀取一小頁數據
  • 緊密連接
  • 通過應用程序在內存中處理它們
  • 重復

(並因此將其留給連接池以處理事務並允許其他人執行其事務)。

我真的很想知道這種情況下可擴展的最佳實踐/方法。 我只需要為所有用戶獲取這2個屬性(當然,我們有過濾器-例如,刪除非活動狀態)

就個人而言,我想知道是否應該

  • 使用我們的自定義計划程序服務來運行Powershell(或.NET),使用DirectorySearcher,打開連接(ssl),一次使用分頁讀取100/1000個用戶並在內存中對其進行處理。 與AD的連接保持打開狀態

  • 打開與AD的連接,以CSV(分頁)的形式獲取所有用戶的轉儲,關閉連接,將其寫入數據庫以供其他任務處理。 但這將是一項必須每天進行的工作,並且具有對DB的潛在卷權限。

  • 將這兩個屬性復制到數據庫表中,並在通過我們的應用程序在AD中進行更改時使它們保持同步。 從這里消費數據。

等等。

建議?

盡可能在源處進行過濾。 盡可能返回最小的屬性集。

您可以利用DirectorySynchronization ,但是我要說的是這樣做只有在您需要進行大量客戶端計算的情況下才有價值。 我使用此技術來管理AD中的照片。 我有一個脫機同步集,其中將照片作為哈希可以用於確保僅在需要時進行更新,並且在更新時,我僅從上次執行以來就從目錄中提取更改。

對於基於pwdLastSet或lastLogonTimeStamp的操作,我將始終生成(LDAP)篩選器,使我可以向AD詢問最小的結果集。 我將始終要求我實際需要使用的最少數量的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM