PowerShell 批次建立 AD 使用者

在大型企業或教育機構中,經常需要建立大量 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 環境,可結合排程自動執行,每日或每週生成報表,方便管理員快速掌握使用者建立狀態。

延伸學習(PowerShell 系統管理進階)

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 排程任務,每日或每週自動執行,生成批次帳號並輸出報表,方便系統管理。