在大型企業或教育機構中,經常需要建立大量 Active Directory 使用者帳號。手動建立容易耗時且出錯,因此透過 PowerShell 批次建立 AD 使用者 可以快速完成帳號建立、初始密碼設定及驗證,並支援多部門匯入,提升 AD 管理效率與自動化程度,是系統管理員不可或缺的工具。
PowerShell 批次建立 AD 使用者步驟
以下步驟示範如何使用 PowerShell 批次建立 AD 使用者,操作方式皆需在 PowerShell 視窗(管理員權限) 執行,確保有 AD 建立使用者的權限。
步驟 1:匯入 Active Directory 模組
# 執行方式:PowerShell 視窗 (管理員)
Import-Module ActiveDirectory
此步驟載入 AD 模組,使後續指令如 New-ADUser 可使用。
步驟 2:建立 CSV 檔案
# 執行方式:任何文字編輯器建立 CSV
Username,FirstName,LastName,Department,Email
jdoe,John,Doe,IT,jdoe@example.com
asmith,Alice,Smith,HR,asmith@example.com
CSV 必須包含帳號資訊,欄位名稱需與腳本對應,便於批次匯入。
步驟 3:讀取 CSV 並建立使用者
# 執行方式:PowerShell 視窗 (管理員)
$users = Import-Csv "C:\ADUsers.csv"
foreach ($user in $users) {
$password = ConvertTo-SecureString "DefaultP@ssword123" -AsPlainText -Force
New-ADUser `
-SamAccountName $user.Username `
-Name "$($user.FirstName) $($user.LastName)" `
-GivenName $user.FirstName `
-Surname $user.LastName `
-Department $user.Department `
-EmailAddress $user.Email `
-AccountPassword $password `
-Enabled $true `
-ChangePasswordAtLogon $true
Write-Host "建立使用者:" $user.Username
}
此腳本會自動建立 CSV 中所有使用者帳號,並設定初始密碼與首次登入修改密碼。
步驟 4:驗證建立結果
# 執行方式:PowerShell 視窗
Get-ADUser -Filter * | Select-Object SamAccountName,Name,Department
確認使用者是否成功建立,以及部門與姓名資訊是否正確。
實務案例與 CSV 範例
以下提供三個實務案例示範批次建立 AD 使用者:
# 案例一:建立 IT 部門新員工
Import-Csv "C:\ITUsers.csv" | ForEach-Object {
New-ADUser -SamAccountName $_.Username -Name "$($_.FirstName) $($_.LastName)" `
-GivenName $_.FirstName -Surname $_.LastName -Department $_.Department `
-EmailAddress $_.Email -AccountPassword (ConvertTo-SecureString "IT123!" -AsPlainText -Force) `
-Enabled $true -ChangePasswordAtLogon $true
}
# 案例二:建立 HR 部門新員工
Import-Csv "C:\HRUsers.csv" | ForEach-Object {
New-ADUser -SamAccountName $_.Username -Name "$($_.FirstName) $($_.LastName)" `
-GivenName $_.FirstName -Surname $_.LastName -Department $_.Department `
-EmailAddress $_.Email -AccountPassword (ConvertTo-SecureString "HR123!" -AsPlainText -Force) `
-Enabled $true -ChangePasswordAtLogon $true
}
# 案例三:檢查帳號是否存在,避免重複
Import-Csv "C:\AllUsers.csv" | ForEach-Object {
if (-not (Get-ADUser -Filter {SamAccountName -eq $_.Username})) {
New-ADUser -SamAccountName $_.Username -Name "$($_.FirstName) $($_.LastName)" `
-GivenName $_.FirstName -Surname $_.LastName -Department $_.Department `
-EmailAddress $_.Email -AccountPassword (ConvertTo-SecureString "DefaultP@ss" -AsPlainText -Force) `
-Enabled $true -ChangePasswordAtLogon $true
}
}
| 項目 | 說明 |
|---|---|
| CSV 檔案 | 包含 Username、FirstName、LastName、Department、Email 欄位 |
| PowerShell 指令 | 匯入 CSV,使用 New-ADUser 批次建立帳號 |
| 初始密碼 | 使用 ConvertTo-SecureString 設定密碼,搭配 -ChangePasswordAtLogon 強制修改 |
# 架構示意
AD_Batch_Create:
- 匯入模組: Import-Module ActiveDirectory
- 讀取 CSV: Import-Csv
- 建立使用者: New-ADUser
- 設定密碼: ConvertTo-SecureString + -ChangePasswordAtLogon
- 驗證結果: Get-ADUser
以上步驟及案例適用於 Windows Server AD 環境,可結合排程自動執行,每日或每週生成報表,方便管理員快速掌握使用者建立狀態。
FAQ 常見問題
如何批次建立多名 AD 使用者?
使用 PowerShell 匯入包含使用者資訊的 CSV 檔,再透過 New-ADUser 批次建立帳號,可一次建立多名使用者,節省手動建立時間。
如何設定初始密碼與首次登入修改?
在 New-ADUser 指令中使用 -AccountPassword 設定初始密碼,並加上 -ChangePasswordAtLogon $true,可強制使用者首次登入修改密碼,提升安全性。
如果 CSV 中有重複帳號怎麼辦?
建議先檢查 CSV 是否有重複帳號,或在建立前用 PowerShell 判斷是否已存在帳號,避免 New-ADUser 失敗。
如何確認使用者建立成功?
可使用 Get-ADUser -Filter * 查詢 AD 中所有帳號,確認新建立使用者的名稱、部門及 Email 是否正確。
可以同時建立不同部門使用者嗎?
可以,只要 CSV 中包含部門欄位,腳本會自動將部門資訊帶入 AD 使用者屬性,無需額外手動設定。
如何自動化定期建立使用者?
可將 PowerShell 腳本結合 Windows 排程任務,每日或每週自動執行,生成批次帳號並輸出報表,方便系統管理。
