2011-04-15 55 views
4

我正在使用System.DirectoryServices.AccountManagement API從AD中提取組的列表。這些組都以相同的前綴開頭,所以使用前綴和通配符很容易找到它們。我還想要做的就是讓自上次檢查後發生變化的羣組獲得。我已將GroupPrincipal分類爲包含whenChanged屬性,並且在我將完整的組列表過濾出來之後,我正在使用該屬性。我想知道的是,是否可以在GroupPrincipal上執行AdvancedFilterSearch?我知道GroupPrincipal沒有AdvancedFilterSearch屬性。我想知道如果你在分類中添加一個會使用PrincipalSearcher嗎?如果是的話,一個例子會很好。.NET 3.5 - System.DirectoryServices.AccountManagement - AdvancedSearchFilter on group?

感謝,

克里斯·麥金農

+1

嗨,只是想知道你想通過使用和AdvancedFilterSearch實現什麼?我在問,因爲可能有其他策略通過不使用AdvancedFilterSearch來解決您的問題 – Raymund 2011-04-26 22:55:39

回答

0

簡短的回答讓只改變了自上次檢查是不是(容易)可能的組。

AD中的每個對象都具有與它們關聯的更新序列號屬性。當一個小組改變其USN變化時。但不總是。如果您將組員添加/刪除,則USN不會更改。只有在更改組名或其他簡單屬性時纔會更改。 最重要的是,USN號碼在單個域控制器上是唯一的。所以你必須確保你總是連接到同一臺服務器。

您可以訂閱對AD對象的更改並在更改時收到通知,但這不會擴展。

在我的項目中,我每次都結束了對所有組的查詢。這並不像聽起來那麼糟糕,因爲API非常擅長對結果集進行分頁,並且通過查看資源不是很密集。