Active-Directory

需要創建多個具有不同域名的電子郵件 - PowerShell

  • April 7, 2015

我的任務是創建一個腳本,輪詢 AD 以獲取特定資訊,然後根據該資訊創建一個適當的電子郵件地址。請允許我給你一個綱要。

我的公司有 5 個電子郵件域。所有 5 個都可以通過 Exchange,但我們現在只使用一個。目前,每個人都設置了預設的 company.com 電子郵件地址。我們有幾個不同的品牌,我們希望將我們的使用者細分到不同的品牌中,以提高電子郵件的送達率,從而在行銷部門決定發布大量電子郵件時幫助我們的公司電子郵件不受 IP 聲譽的影響。

我管理 7 個伺服器 Exchange 2010 DAG(3 個生產,3 個 DR,1 個 3 天滯後)。我在 PowerShell 方面相當不錯,並且非常擅長找到我需要的程式碼片段,所以我不是在尋找整個腳本,但我在某些片段上遇到了麻煩。

企業想要做的是有一個腳本來讀取 AD 中的屬性,然後基於該屬性,將其分配給正確的品牌。所以,例如。如果 AD 使用者具有“行銷”屬性,他們將獲得 marketing.com 電子郵件地址作為他們的主要回复地址,同時仍保留他們的 company.com 電子郵件地址作為輔助地址。如果 AD 使用者將“建築產品”作為他們的屬性,則 building.com 將是他們的回復電子郵件地址等。

我可以讓 PowerShell 輪詢 AD 以獲取屬性。我可以用它來創建電子郵件。我很難弄清楚如何讓它選擇其他域名之一,而不是預設的 company.com 電子郵件地址。

任何見解將不勝感激。

這是未經測試的,但應該讓你朝著正確的方向前進。

$peeps = get-aduser -filter * -properties department
for-each ($person in $peeps){

##Checks Department and sets new email

if ($person.department -eq "building"){$email = $person.firstname+'.'+$person.surname +'@buildings.com'}
elseif ($person.department -eq "otheroption"){$email = $person.firstname+'.'+$person.surname +'@whatever.com'}

##Changes existing email addresses to aliases and sets new email from above as primary

$person.user = $user
$smtp=get-aduser $user.samaccountname -properties proxyaddresses |select-object proxyaddresses
   $newsmtp = @()
   foreach($addr in $smtp.proxyaddresses){
       if ($addr -notmatch $email -and $addr -cmatch "SMTP"){
           $newsmtp = $newsmtp + $addr.replace("SMTP","smtp") 
           }
       elseif ($addr -notmatch $email -and $addr -cnotmatch "SMTP"){$newsmtp = $newsmtp + $addr}
       } 
   $emailproxy = 'SMTP:'+$email
   $newsmtp = $newsmtp + $emailproxy
   set-aduser $user.samaccountname -replace @{proxyaddresses=@($newsmtp)}

}

引用自:https://serverfault.com/questions/680978