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