Назад | Перейти на главную страницу

Powershell 2 и Exchange: поиск конфликтующих объектов

Я новичок в PowerShell и Exchange, так что не беспокойтесь, если это покажется запутанным.

Мне нужно создать список всех возможных адресов электронной почты в нашей среде (десятки тысяч), что приведет к сбою следующего кода из-за объекта, который уже существует с этим адресом электронной почты в качестве одного из его ключевых свойств:

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

Я пробовал перебирать все записи, возвращаемые из get-mailcontact, сохраняя каждый адрес электронной почты из коллекции «EmailAddresses», но теперь я считаю, что мне также нужно извлечь все возможные адреса электронной почты из объектов User. Я дошел до того, что думаю, что есть более простой, возможно, одноразовый способ сделать это.

Как проще всего это сделать в 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:')}