Содержание

Общий почтовый ящик

get-Mailbox "info@mydomain.ru" | select name -expand GrantSendOnBehalfTo | sort
Set-Mailbox "info@mydomain.ru" -GrantSendOnBehalfTo @{Add="bob@mydomain.ru"}
Set-Mailbox "info@mydomain.ru" -GrantSendOnBehalfTo @{Removed="bob@mydomain.ru"}

Поиск пользователей у которых адреса Mail и Targetaddress различаются

Get-AdUser -Filter {Mail -like "*"} -Properties Mail,Targetaddress |
 Where-Object {($_.mail -and $_.targetAddress) -and ($_.mail -ne ($_.targetAddress -replace "SMTP:",""))} |
 select mail,@{Expression={$_.targetaddress -replace "SMTP:"};label="Target"} | Export-Csv MismatchedTargets.csv
 
**Note** If you want narrow down your search to a specific OU, you can add the -Searchbase switch after Get-AdUser

или

Get-user -resultsize unlimited -RecipientTypeDetails "User" -OrganizationalUnit "OU=IT,DC=domain,DC=ru" 
 
get-mailuser test |fl name,WindowsEmailAddress,PrimarySmtpAddress,ExternalEmailAddress,EmailAddresses

Добавление старого IMCEAEX адреса

$Addr= "IMCEAEX-_o=mydomain_ou=Exchange+20Administrative+20Group+20+25FUDITYHF23SPDLT+29_cn=Recipients_cn=Bobrikova+2C+20Olga@mydomain.ru"
$Repl= @(@("_","/"), @("\+20"," "), @("\+28","("), @("\+29",")"), @("\+2C",","), @("\+3F","?"), @("\+5F", "_" ), @("\+40", "@" ), @("\+2E", "." )) 
$Repl | ForEach { $Addr= $Addr -replace $_[0], $_[1] } 
$Addr= "X500:$Addr" -replace "IMCEAEX-","" -replace "@.*$", "" 
Write-Host $Addr

Добавить полученный адрес, как дополнительный кастом адрес:

  1. X500 остаётся в левой части
  2. Двоеточие ":" удаляется
  3. правая часть начинается с "/имя домена"

Работа с SMTP адресами

Добавление/удаление на сайте Microsoft

Добавить SMTP адрес

Set-Mailbox "Dan Jump" -EmailAddresses @{add="dan.jump@northamerica.contoso.com"}
Set-Mailbox "Dan Jump" -EmailAddresses @{add="dan.jump@northamerica.contoso.com","danj@tailspintoys.com"}
Set-Mailbox "Dan Jump" -EmailAddresses "SMTP:dan.jump@contoso.com","dan.jump@northamerica.contoso.com","danj@tailspintoys.com"

Удалить SMTP адрес

Set-Mailbox "Janet Schorr" -EmailAddresses @{remove="janets@corp.contoso.com"}
Set-Mailbox "Janet Schorr" -EmailAddresses @{remove="janet.schorr@corp.contoso.com","janets@tailspintoys.com"}
Set-Mailbox "Janet Schorr" -EmailAddresses "SMTP:janets@contoso.com","janets@tailspintoys.com"

Посмотреть Email адрес

get-Mailbox username |select -ExpandProperty EmailAddresses | select proxyaddressstring

Добавление группы адресов

Set-Mailbox "Dan Jump" -EmailAddresses @{add="dan.jump@northamerica.contoso.com","danj@tailspintoys.com"}

Перезапись SMTP адресов с установкой основного

Set-Mailbox "Dan Jump" -EmailAddresses "SMTP:dan.jump@contoso.com","dan.jump@northamerica.contoso.com","danj@tailspintoys.com"

Удаление SMTP адресов

Set-Mailbox "Janet Schorr" -EmailAddresses @{remove="janet.schorr@corp.contoso.com","janets@tailspintoys.com"}

Если адресов много, то можно копипастой вставить smtp адреса в скрипт и добавить пользователю с алиасом MyNewUser

$MyData = (@'
Myuser1@mydomain.ru
Myuser2@mydomain.ru
Myuser3@mydomain.ru
'@).split("",[System.StringSplitOptions]::RemoveEmptyEntries) 
 
foreach ($MyItem in $MyData)
{
$MyItem   
 
Set-Mailbox MyNewUser -EmailAddresses @{add=$MyItem}
 
}

Добавление email адреса в отображение get-mailbox

  1. Открываем $exbin\exchange.format.ps1xml
  2. В раздел Get-Mailbox View\TableControl добавляем необходимые поля.

Проверка существования почтовых адресов

$a=(@'
test@mydomain.ru
'@).split("`n") |
 foreach {$_.trim()}
 
 foreach ($item in $a)
 {
     if (!(Get-Mailbox $item -ErrorAction silentlycontinue )){
        Write-Host -ForegroundColor Red $item #Not Exist
     } else {
        Write-Host -ForegroundColor green $item  #Exist   
     }
 }