本站已搬家!

本站已搬家至https://blog.typeart.cc


歡迎舊雨新知指教!

Exchange郵件聯絡人 大量匯入

只需要二個步驟
1. 將要匯入的清單用excel整理成csv檔
2. 打開powershell,下2行指令,跑完收工!
詳細作法如下

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

注意!格式需存成utf-8,否則PowerShell匯入後會變成亂碼!
csv檔格式範例如下
enter image description here

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

  1. 建立郵件聯絡人:
    Import-CSV C:\abc.csv | ForEach-Object{New-MailContact -Name $_.DisplayName -Alias $_.Alias-OrganizationalUnit $_.OUpath -ExternalEmailAddress $_.ExternalMail}
  2. 設定郵件聯絡人的公司、部門、職位:
    Import-CSV C:\ccc.csv | ForEach{Set-Contact -Identity_.DisplayName -Title .Title -Company $.Company -Department $_.Department}
完工!

以下部份為指令說明

以建立郵件聯絡人這段指令為例:
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檔中的第一行標題列名稱
固定格式為$_XXX,XXX可自行決定!
以前述CSV檔為例,把csv檔標題列的$_DisplayName改成name
則指令變成:
.... ForEach-Object{New-MailContact -Name $_.name .....}
注意:大小寫需相符
大部份情況應該只需要輸入這些資訊就夠使用了!若還有其他欄位想要大量匯入,請參照微軟的說明頁面,再後方依序加入相對應欄位即可!

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

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

留言