我正在编写一个C#应用程序来监视Active Directory的某些更改,并将这些更改同步到另一个系统。我正在使用来自C#的System.DirectoryServices.Protocols.DirectoryNotificationControl用于此目的,因此我不必轮询AD以进行更改。
在大多数情况下效果很好。如果我编辑用户并将用户添加到组中,我会收到通知。但是,如果我编辑一个组并将用户添加到该组,我就不会收到有关用户更改的通知。虽然我已经收到关于组更改的通知,但是我必须扫描组成员并维护交叉检查列表并进行比较。哪个不规模。
有关如何更准确地通知Active Directory中的组成员身份更改的任何想法?
干杯, 基督教
答案 0 :(得分:3)
群组成员资格存储在群组中。将用户添加到组时,用户无需修改。在用户属性上显示组成员资格是通过memberOf
属性的抽象,该属性在请求时即时计算。
答案 1 :(得分:2)
完全同意@Brian Desmond,您可以在User Security Attributes Microsoft文章中查找他所谈论的内容的源信息(查找成员)。您还可以阅读,您可以获得有关连接到全局目录的更多信息
WMI可能是您可以深入研究的第二种解决方案。它存在AD WMI提供商。 Using WMI to Monitor AD为您提供了一些线索。到目前为止,本文所做的工作并不多,但我认为通过WMI事件,您可以创建所需的通知。您可以在Monitoring Active Directory Health中找到有关此信息的Microsoft信息,特别是有效Directory WMI Providers。