Skip to content

Instantly share code, notes, and snippets.

@tomtorggler
Last active July 16, 2018 07:39
Show Gist options
  • Save tomtorggler/e40710801163000924a7aa84c08ed6e1 to your computer and use it in GitHub Desktop.
Save tomtorggler/e40710801163000924a7aa84c08ed6e1 to your computer and use it in GitHub Desktop.
Adds Exchange Online email address to Mailboxes
if(-not(Get-PSSession)) {
. 'D:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto -ClientApplication:ManagementShell
}
$Mailboxes = Get-Content .\shared.txt | Get-Mailbox
$ExOSuffix = "<tenant>.mail.onmicrosoft.com"
foreach($m in $Mailboxes) {
$NewAddress, $PrimaryAddress, $PrimaryAddressName = $null
$PrimaryAddress = $m.EmailAddresses | Where-Object {$_.IsPrimaryAddress -and $_.PrefixString -eq "SMTP"}
$PrimaryAddressName = $PrimaryAddress.AddressString -replace("@.*","")
$NewAddress = $PrimaryAddressName,$ExOSuffix -join("@")
$m.EmailAddresses.Add("smtp:$NewAddress")
Set-Mailbox -Identity $m.Identity -EmailAddresses $m.EmailAddresses
}
### remove local addresses (e.g. not in accepted domains)
<#
$LocalDomain = "<domain>.local"
foreach($m in $Mailboxes) {
$LocalAddress = $null
$LocalAddress = $m.EmailAddresses | Where-Object {$_.IsPrimaryAddress -eq $false -and $_.AddressString -match $LocalDomain}
if($LocalAddress) {
$m.EmailAddresses.Remove($LocalAddress)
Set-Mailbox -Identity $m.Identity -EmailAddresses $m.EmailAddresses
}
}
#>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment