Updating ProxyAddresses, Example 6
From MyWiki
Import-module activedirectory Function Set-DefaultAddress ([string]$UserName,[string]$NewDefaultAddress) { $NewProxyAddresses=@() $AddressFoundInArray=$False Write-Debug "Processing user $UserName" $ProxyAddresses=(Get-ADUser $UserName -Properties proxyaddresses).proxyaddresses foreach ($ProxyAddress in $ProxyAddresses) { #Only evaluate smtp addresses if ($ProxyAddress -match "^smtp:") { $ProxyAddressArr=$ProxyAddress.Split(":") If ($ProxyAddressArr[1] -eq $NewDefaultAddress) { Write-Debug "Address $NewDefaultAddress found, converting to default address" $NewProxyAddresses+=$proxyAddressArr[0].ToUpper()+":"+$ProxyAddressArr[1] $AddressFoundInArray=$True } else { Write-Debug "Converting $ProxyAddress to non-default address" $proxyAddressArr[0]=$proxyAddressArr[0].ToLower() $NewProxyAddresses+=$proxyAddressArr[0].ToLower()+":"+$ProxyAddressArr[1] } } else { $NewProxyAddresses+=$ProxyAddress } } if (!$AddressFoundInArray) { Write-Debug "Adding address $NewDefaultAddress" $NewProxyAddresses+="SMTP:$NewDefaultAddress" } Set-ADUser $UserName -Replace @{ProxyAddresses=$NewProxyAddresses} -EmailAddress $NewDefaultAddress }