[精讚] [會員登入]
3475

利用 PowerShell 指令大量建立 Windows Server 2016 帳號

利用 PowerShell 指令大量建立 Windows Server 2016 帳號

此文完整連結 http://n.sfs.tw/12573

複製連結 利用 PowerShell 指令大量建立 Windows Server 2016 帳號@杜子的網管筆記
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 11:58:09 最後編修
2018-08-02 10:42:13 By 杜子
 

學校的  Windows Server 2008R2 因故不堪使用了,

硬著頭皮重新架設 Windows Server 2016來進行校電所有電腦的網域管理,

要做的設定還真是不少,

其中, 令人較頭大的是帳號建置問題, 教師加學生近2000人.

幸好 Windows 的 PowerShell 指令可以解決這個問題.

1. 先準備 PowerShell 程式

我在 D:\ 建立了一個名為  CreateAccount 的資料夾, 然後把這支程式儲存成 go.ps1 檔

底下是建帳號的程式

#網域設定,需要和實際相同 
$const_DC="DC=fnjh,DC=tc,DC=edu,DC=tw" 
$const_userPrincipalName="@fnjh.tc.edu.tw" 
#先建立帳號的 CSV 檔應有欄位名稱 name (帳號) password (密碼) container (放在哪個ou tmpTeaches或 tmpStudents 之後再自行移動) description (描述) displayName (顯示姓名) sn(姓) givenName(名) group(群組)
#注意! CSV 檔必須為 UTF-8 字碼
#以參數的方式帶入 CSV 檔
if (!$args) { 
    Write-Host "需要傳入 CSV 檔案參數!"


ELSE
{

#載入 CSV 檔
$accountdata=Import-CSV $args
  foreach ($element in $accountdata){ 
    
    #USER帳號 
    $name=$element.name 
    #OU
    $ou=$element.container
    $container="OU=$ou,$const_DC"
    #帳號@網域
    $userPrincipalName=$name + $const_userPrincipalName
    #密碼處理,要編碼
    $password=$element.password 
    $pass = ConvertTo-SecureString $password -AsPlainText -Force
    #中文名
    $description=$element.description 
    $displayName=$element.displayName 
    #群組
    $group=$element.group
    #辦公室
    $physicalDeliveryOfficeName=$element.physicalDeliveryOfficeName
    #新增帳號
    #New-ADUser -Name $name -AccountPassword $pass -Path $container -Enabled 1 -ScriptPath "login.vbs" -HomeDrive "Z:" -HomeDirectory "\\nas\home" -SamAccountName $name -UserPrincipalName $userPrincipalName -OtherAttributes @{'description'=$description;'displayName'=$description;'physicalDeliveryOfficeName'=$physicalDeliveryOfficeName }
    New-ADUser -Name $name -AccountPassword $pass -Path $container -Enabled 1 -ScriptPath "login.vbs" -SamAccountName $name -UserPrincipalName $userPrincipalName -OtherAttributes @{'description'=$description;'displayName'=$description;'physicalDeliveryOfficeName'=$physicalDeliveryOfficeName }
    #把帳號加入群組
    Add-ADGroupMember -Identity $group -Members $name
  } #end for
} # end if else

 

 

 

2. 利用 Excel 整理帳號, 注意, 第一行是標題, 不能改上面的英文標題名稱, 那是要讓 PowerShell 判別用的

name : 帳號

password : 預設帳號

description 及 displayName 都是要顯示在 AD 裡的中文名

container 建好的帳號要放在哪個 OU , 基本上我都是先集中放在某個 OU , 建好後再去移動

group : 帳號要加到哪個群組

physicalDeliveryOfficeName : 辦公室  , 如果是學生, 我就填入班級

整理好後, 要另存成 CSV 檔

由於 Excel 另存的 CSV 檔, 字碼是 BIG-5 

所以, 要利用文字編輯程式, 以下是用 NotePad++ 為例, 把字碼轉換成 UTF-8 , 這樣 PowerShell 在運作時, 中文才會正常.

裡面有些中文字在 Excel 轉存時會變成  ? , 此時也順便修正.

轉存完會看到 D:\CreateAccount 裡有這些檔

3. 開啟 PowerShell  準備建帳號了

依序下指令進行帳號建立 , 如下圖:

 

建立完畢, 在 tmpStudents 這個 OU 裡, 就可以看到大量帳號被建立了. 

你可能感興趣的文章

讓 Windows Server 2016 的 IIS 10 支援 PHP 因為在研究如何利用 PHP 與 Windows AD 進行 LDAPS 連線,外部的 Linux 或 FreeBSD 跑

利用 PowerShell 指令大量建立 Windows Server 2016 帳號 利用 PowerShell 指令大量建立 Windows Server 2016 帳號

Windown 10 新增「微軟新倉頡」輸入法的方法 Windown 10 的中文輸入法一直是我覺得微軟做得很爛的一個地方, 微軟注音輸入法還好,有細部的選項可以進行設定,

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。請注意:留言不可帶有網址,會被濾掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

讓校內的 Windows Server 2016 AD 帳號的密碼與臺中市雲端校務系統的密碼同步 臺中市的校務雲端系統釋出 rest 服務,可以直接利用 Call API 方式把帳號的密碼改掉, 方便校內帳號改密碼時可