PowerShell 批次建立 AD 使用者

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 環境,可結合排程自動執行,每日或每週生成報表,方便管理員快速掌握使用者建立狀態。

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

    PAGE TOP