Поиск по сайту:

Управление адресами электронной почты с помощью PowerShell


Одна из самых распространённых задач администратора — найти, изменить или добавить адрес электронной почты в почтовый ящик пользователя. PowerShell значительно упрощает эту задачу: вы можете легко найти пользователей, к которым принадлежит адрес электронной почты, и добавить или удалить псевдоним.

В этой статье я покажу вам несколько советов о том, как найти адрес электронной почты или ProxyAddress в Exchange или Active Directory и как его добавить или удалить.

Поиск владельца адреса электронной почты

Я работаю с Exchange Online здесь, поэтому сначала нам нужно подключиться к Exchange Online. Вы можете использовать этот скрипт соединения или выполнить следующий код:

#Create credential object
$credObject = Get-Credential
 
#Import the Exchange Online ps session
$ExchOnlineSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $credObject -Authentication Basic -AllowRedirection
Import-PSSession $ExchOnlineSession

Существует несколько способов найти владельца адреса электронной почты, начнем с команды get-recipient. Это вернет все объекты с поддержкой почты (почтовые ящики, почтовые пользователи, контакты, группы рассылки), поэтому это лучшее место для начала вашего поиска.

Используя фильтры и подстановочные знаки, мы можем искать по части адреса электронной почты:

Get-Recipient -Filter {EmailAddresses -like 'smtp:gr*' -or EmailAddresses -like 'gr*'}

В этом случае мы ищем адрес электронной почты, который начинается с "gr" (обратите внимание на * подстановочный знак в конце). Я добавил "smtp:" перед началом адреса электронной почты, потому что если ваши алиасы управляются через Active Directory, вы заметите, что они начинаются с "smtp:".

Конечно, вы также можете добавить подстановочный знак перед ним, но это значительно расширит запрос.

Ваша команда вернёт пользователя объекта, имя которого соответствует поисковому запросу или содержит указанные буквы в адресе электронной почты, но не покажет, где именно. Поэтому выберите поле EmailAddress и расширьте его, чтобы отобразить все значения многозначного объекта.

Get-Recipient -Filter {EmailAddresses -like 'smtp:gr*'} -Properties Name,Emailaddresses | select Name,Emailaddresses -ExpandProperty Emailaddresses

Поиск объектов Active Directory

Если вы хотите проверить или найти адрес электронной почты объекта Active Directory (пользователя или группы), мы можем использовать командлет get-ADObject или get-aduser. Сначала нам необходимо импортировать модуль ActiveDirectory:

Import-Module ActiveDirectory

Мы можем использовать команду ниже для поиска в Active Directory. Мы будем фильтровать результаты по почтовому адресу или proxyAddress. Используя подстановочный знак и ключ -like, мы можем искать часть почтового адреса.

Get-ADObject -Properties mail, proxyAddresses -Filter {mail -like "gr*" -or proxyAddresses -like "smtp:gr*"}

Добавить или удалить proxyAddress у пользователя AD

С помощью PowerShell мы также можем легко добавить или удалить адрес прокси у пользователя:

Set-ADUser -Identity user1 -Add @{Proxyaddresses="smtp:[email "}

Убирая это:

Set-ADUser -Identity user1 -Remove @{Proxyaddresses="smtp:[email "}