Powershell 2和Exchange:查找冲突的对象

我是新来的PowerShell和交stream,所以容易对我来说,如果这听起来令人困惑。

我需要在我们的环境(成千上万)中生成每个可能的电子邮件地址的列表,这将导致下面的代码出错,这是因为已经存在该对象的电子邮件地址作为其关键属性之一:

New-MailContact -Name $email ` -ExternalEmailAddress $email > $null 

我已经尝试迭代从get-mailcontact返回的所有条目,从“EmailAddresses”集合存储每个电子邮件地址,但现在我相信我也需要从用户对象中提取所有可能的电子邮件地址。 我已经到了我认为有一个更简单,可能是一次性的方式来做到这一点。

PS 2中最简单的方法是什么? 有没有办法保证,如果列表中的电子邮件地址,New-MailContact将失败,并有重复的错误,如果电子邮件地址不在列表中,那么我们保证New-MailContact不会产生错误由于重复。 (它可能会产生其他错误,但不是因为一个对象已经与这个地址相关联。)

谢谢!

我相信你可以从Active Directory中抓取每一个有非空的ProxyAddresses集合的对象,然后过滤出SMTP地址(不包括SIP和X400) –

 Get-ADObject -Properties ProxyAddresses -Filter 'ProxyAddresses -gt 0' | select ProxyAddresses | %{$_.ProxyAddresses} | where{$_.ToUpper().StartsWith('SMTP:')}