Я новичок в 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:')}