0

我有一個奇怪的請求,我在PowerShell中苦苦掙扎。我們有一個默認的電子郵件策略,用於命名新的用戶電子郵件地址的第一個最後的名字是[email protected],這對第一個要求很好。如何使用PowerShell設置郵箱別名Exchange 2010

之後,他們想要以下,我不知道如何編碼/測試在Exchange中存在什麼?我是否應該先從AD做測試,因爲它可能會保存SMTP地址並在存在重複別名時進行調整?我們有超過20K的用戶,所以重複發生了很多。

另外,我已經針對Exchange 2010管理控制檯成功測試了此項,其中Set-Mailbox -identity s1112223 -Alias $SamAccountName ("{0}.{1}" -f $_.givenname, $_.sn)給了我[email protected],但是如何根據以下條件進行格式化?

  1. 首字母和姓氏(如已採取轉到下一個約定)
  2. 名字首字母,中間名首字母,姓(如已採取或沒有中間初始設置,進入下一個約定)
  3. 首選名字,姓氏(如已採取,或者如果沒有首選頭名,進入下一個約定)
  4. 全名,全姓(如果已被使用,進入下一個約定)
  5. 全部第一名字,中間首字母,姓氏(如果已經採用,則轉到下一個約定)
  6. 名字的前兩個字母,姓氏(如果已經拍攝,請使用名字的前三個字母......等等,直到它是唯一的。如果採取的所有變化,進入下一個約定)
  7. 首字母,姓氏和一個數字(這不是優選,但絕對不得已)

回答

0

通常情況下,你建立一個或多個電子郵件地址應用所需命名標準的策略,並且在設置新對象時,如果與現有對象發生衝突,它們將自動遞增。如果您試圖預先查詢現有的別名/電子郵件地址以避免重複編號,那麼您必須跟蹤已發佈的內容。

最簡單的方法是跟蹤所有Exchange收件人的.EmailAddresses字段 - 所有郵箱,郵件用戶,MailContact,啓用郵件的公用文件夾,通訊組等。此字段包含給定的所有代理地址對象已被配置。但是,運行這些查詢將花費大量時間,因此您的程序會很慢。

我建議您使用計劃任務來查詢這些並將它們放入數據庫中。然後,您的供應代碼可以(a)對數據庫執行簡單查詢,以查看給定的別名或生成的電子郵件地址是否已被使用,以及(b)在新對象出現後用新別名和電子郵件地址更新數據庫成功配置。

嘗試在PowerShell中執行此操作時,您配置郵箱可能是錯誤的地方。您可能需要從產生所有其餘用戶數據的源相同的源生成此唯一字符串,然後PowerShell可以簡單地使用它來設置所創建對象的別名。

相關問題