Powershell 2 和 Exchange:查找冲突对象

Lar*_*old 5 powershell exchange-2010

我是 powershell 和 Exchange 的新手,所以如果这听起来令人困惑,请放轻松。

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

New-MailContact -Name $email                                  `
                -ExternalEmailAddress $email                  > $null
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢!

pk.*_*pk. 1

我相信您可以从 Active Directory 中获取具有非空集合的每个对象ProxyAddresses,然后过滤掉 SMTP 地址(不包括 SIP 和 X400) -

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