上下文
OU中有200万用户的Active Directory实例
在我们的领域中可能增长到1 M
不是这方面的专家。我正在尝试为我需要轮询AD和
的场景提出解决方案设计检查PwdLastSet和LastLogonDate属性
根据每位用户的价值(锁定帐户,发送电子邮件等)做出6个不同的决策(策略)。
理想情况下,如果是数据库,我可以选择
(因此将它留给连接池来处理东西并允许其他人做他们的事情。)
我真的很想知道这种情况下可扩展的最佳实践/方法。我只需要为所有用户获取这两个属性(当然我们有过滤器 - 例如删除非活动状态)
就个人而言,我想知道我是否应该
使用我们的自定义调度程序服务运行Powershell(或.NET),使用DirectorySearcher,打开连接(ssl),使用分页一次读取100/1000个用户并在内存中处理它们。与AD的连接仍然保持打开状态
打开与AD的连接,获取CSV(分页)中所有用户的转储,关闭连接,将其写入数据库以处理其他任务。但是,这必须是一个夜间工作,具有潜在的数据库权限。
在数据库表中复制这两个属性,并在它们通过我们的应用程序在AD中更改时保持它们同步。从这里收集数据。
等等。
连连呢?
答案 0 :(得分:0)
尽可能在源处过滤。尽可能返回最小的属性集。
您可以利用DirectorySynchronization,但我会说,只有在您需要进行大量客户端计算的情况下这样做才有价值。我用这个技术来管理AD中的照片。我有一个离线同步集,它将照片作为哈希,可用于确保我只在需要时更新,当我更新时,我只从上次执行后的目录中下拉更改。
对于基于pwdLastSet或lastLogonTimeStamp的操作,我将始终生成(LDAP)过滤器,允许我向AD请求最小的结果集。我将始终请求实际需要使用的最少数量的属性。