语境
一个 OU 中有 200k 用户的 Active Directory 实例
在我们的领域中增长到 100 万的潜力
不是这方面的专家。我正在尝试为需要轮询 AD 和
检查 PwdLastSet 和 LastLogonDate 属性
根据每个用户的价值(锁定帐户、发送电子邮件等)做出 6 种不同的决定(策略)
理想情况下,如果它是数据库,我可以选择
- 打开连接
- 读取一小页数据
- 关闭连接
- 通过应用程序在内存中处理它们
- 重复
(因此将其留给连接池来处理事情并允许其他人做他们的事情)。
我真的很想知道在这种情况下可扩展的最佳实践/方法。我只需要为所有用户获取这两个属性(当然我们有过滤器 - 例如删除不活动的)
就个人而言,我想知道我是否应该
使用我们的自定义调度程序服务来运行 Powershell(或 .NET),使用 DirectorySearcher,打开连接 (ssl),使用分页一次读取 100 / 1000 个用户并在内存中处理它们。与 AD 的连接保持打开状态
打开与 AD 的连接,在 CSV(分页)中获取所有用户的转储,关闭连接,将其写入数据库以供其他任务处理。但这必须是一项夜间工作,具有数据库的潜在批量权利。
在数据库表中复制这两个属性,并在它们通过我们的应用程序在 AD 中更改时保持同步。从这里消费数据。
等等。
建议?