2012年12月3日 星期一

使用 Import-CSV 大量建立 Exchange 2010 測試帳號

如果你是經常需要建立 Exchange Server 測試性 LAB 的人,你一定常會需要在 LAB 環境中建立大量的測試性帳號。此時若你手邊已經擁有帳號名單的 CSV 檔,則可以利用 Import-CSV 的 PowerShell 指令搭配 Exchange 2010 的New-Mailbox 指令大量的進行一次性帳號的匯入。
首先,當然要先準備好 CSV 檔案,我的 CSV 檔案欄位如下圖中紅色框框的名稱



當然這些欄位名稱可以隨你自己的意思自由訂定。
接著開啟 Exchange Server 2010 EMS 輸入下列指令先指定待會所有建立的使用者帳號密碼

$PWD=Read-Host "Please Enter a Password" -asSecureString
上述指令會出現要求你輸入一組預設的密碼並儲存在宣告的 $PWD 的變數中
接著再輸入下列指令即可依序讀入預先準備好的 account2.csv 檔案並建立使用者帳號及信箱並指定帳號的部門欄位值,而建立好的使用者帳號會存放在"使用者帳號"的 OU中:
Import-CSV "C:\account2.csv" | foreach {New-Mailbox -Name $_.cn -FirstName $_.Firstname -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -Alias $_.cn -DisplayName $_.DisplayName -Password $PWD -Org "使用者帳號" | Set-User -Department $_.Department}
看出端倪了嗎?在上述 New-Mailbox 的指令中的每一個參數都是透過$_.+CSV欄位名稱來指定讀取CSV檔案中相對應欄位中的值,然後再透過 ForEach 的迴圈一筆一筆的將所有 CSV 的內容值全部讀取帶入,最後再透過 Set-User 的指令指定使用者帳號的部門欄位值即完成所有的步驟。
不過在使用 Import-CSV 指令時必需要特別注意 CSV 檔案裡不可以有欄位與欄位間不可以隔著一個空白欄位,如下圖紅框處:
否則就會出現如下圖中的錯誤訊息:



如果你嫌上述的指令太麻煩,也可以透過下列簡單的迴圈指令快速的建立測試帳號:

$PWD=Read-Host "Please Enter a Password" -asSecureString

一樣先輸入預設的密碼給稍後建立的使用者帳號使用
接著透過下列指令依序建立 Test1,Test2,Test3...Test10 的使用者帳號及信箱並將帳號存放在"使用者帳號"的 OU中。

 1..10 | Foreach { New-Mailbox -Alias Test$_ -name Test$_ -SamAccountName Test$_ -DisplayName Test$_ -UserPrincipalName Test$_@msft.corp -Password $PWD –Org "使用者帳號" }

透過簡單的 Exchange Management Shell 就可以輕鬆的大量建立測試帳號及信箱喔。




沒有留言:

張貼留言