Active directory Exchange获取更新为Powershell的邮箱

Active directory Exchange获取更新为Powershell的邮箱,active-directory,ldap,exchange-server,Active Directory,Ldap,Exchange Server,我正在寻找一种高效的方法来检索在给定时间后使用Powershell更改的所有Exchange 2013邮箱。 我要做的是让所有邮箱都进行配置更改,阅读所有有趣的详细信息,并定期将它们同步到另一个系统中,就像每5分钟一次一样 到目前为止,我发现的工作方式是: $mbx = Get-Mailbox -Resultsize Unlimited|where-object {$_.whenchanged -gt $lasttime} 但由于这将使所有邮箱都保存它们,然后才循环通过它们来过滤结果,因此需要

我正在寻找一种高效的方法来检索在给定时间后使用Powershell更改的所有Exchange 2013邮箱。 我要做的是让所有邮箱都进行配置更改,阅读所有有趣的详细信息,并定期将它们同步到另一个系统中,就像每5分钟一次一样

到目前为止,我发现的工作方式是:

$mbx = Get-Mailbox -Resultsize Unlimited|where-object {$_.whenchanged -gt $lasttime}
但由于这将使所有邮箱都保存它们,然后才循环通过它们来过滤结果,因此需要花费大量资源和时间>10000个邮箱

有没有更好的方法?如果可以使用LDAP,那就太好了

谢谢
最好的问候

是的,您可以使用LDAP来代替,Exchange使用Active Directory作为其目录服务,因此,例如,如果将代理地址添加到邮箱,则代理地址属性将在Active Directory中更新。whenchanged属性只是Active directory值的反映,因此任何用于查询该值(例如LDAP)的代码都将返回相同的结果。使用LDAP可以做的另一件事是使用WMI订阅事件,以便在修改对象时获得通知类型的事件,例如

干杯
Glen

您可以使用-Filter开关。我以前尝试过使用像get mailbox-Filter{whenchanged-gt$lasttime}这样的过滤器开关,但是由于变量的远程处理问题,这不起作用。现在我使用:$mbx=get mailbox-DomainController$dc-filter[scriptblock]::createwhenchanged-gt'$lastTime'实现了它。嗨,我已经考虑过使用whenChanged属性,但是这个属性经常更新。它不仅在Exchange属性更改时更新,而且在包括logintime在内的常规属性更改时也会更新。遗憾的是,创建了msExchWhenMailboxChanged,但没有msExchWhenMailboxChanged。WMI看起来确实很有趣,但也需要付出巨大的努力才能使其正常工作。我担心这对我们的项目来说太过分了。