Exchange郵件聯絡人 大量匯入

只需要二個步驟

  1. 將要匯入的清單用excel整理成csv檔
  2. 打開powershell,下2行指令,跑完收工!

詳細作法如下

1. 將要匯入的清單用excel整理成csv檔

格式需存成utf-8,否則PowerShell匯入後會變成亂碼!

csv檔格式範例如下

DisplayName Alias OUPath ExternalMail Title Department
王小明 XiaoMing yourDomain.com/Taiwan/業務部 [email protected] 經理 Taiwan/業務部

2. 打開powershell,下2行指令,跑完收工!

  1. 建立郵件聯絡人:

    1
    Import-CSV C:\abc.csv | ForEach-Object{New-MailContact -Name $_.DisplayName -Alias $_.Alias-OrganizationalUnit $_.OUpath -ExternalEmailAddress $_.ExternalMail}
  2. 設定郵件聯絡人的公司、部門、職位:

    1
    Import-CSV C:\ccc.csv | ForEach{Set-Contact -Identity_.DisplayName -Title .Title -Company $.Company -Department $_.Department}

完工!


指令說明

以建立郵件聯絡人這段指令為例:

1
Import-CSV C:\abc.csv | ForEach-Object{New-MailContact -Name $_.DisplayName -Alias $_.Alias-OrganizationalUnit $_.OUpath -ExternalEmailAddress $_.ExternalMail}

整串指令可以拆分三大部份來看

第一部份的Import-CSV C:\abc.csv

就是欲匯入的csv檔之檔案完整路徑

第二部份為ForEach-Object {…..}

顧名思議,ForEach就是跑迴圈,一筆一筆資料逐一填入exchange的資料庫

第三部份是中間的New-MailContact 及後面的參數

從字面上可以知道New-MailContact 是新建郵件聯絡人

而後面的參數 -Name、-Alias…,即對應到exchange中郵件聯絡人的名字、別名…。具體對應參照下表

對應到exchange之欄位 說明
-Name 名字
-Alias 別名
-OrganizationalUnit 組織單位
-ExternalEmailAddress 電子郵件地址

$_.DisplayName$_.Alias、$__OrganizationalUnit,則是對應到CSV檔中的第一行標題列名稱

固定格式為$_XXXXXX可自行決定!

以前述CSV檔為例,把csv檔標題列的\$_DisplayName改成name
則指令變成:

1
.... ForEach-Object{New-MailContact -Name $_.name .....}

大小寫需相符

大部份情況應該只需要輸入這些資訊就夠使用了!若還有其他欄位想要大量匯入,請參照微軟的說明頁面.aspx),再後方依序加入相對應欄位即可!

另加碼exchange計算使用者已用容量

1
Get-MailboxStatistics -server msa|where {$_.TotalItemSize -gt 1MB}| Sort-Object TotalItemSize -Descending | [email protected]{label="User";expression={$_.DisplayName}},@{label="Total Size";expression={$_.TotalItemSize.value.ToMB()}},ItemCount-auto