[精讚] [會員登入]
8695

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

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

分享此文連結 //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 裡, 就可以看到大量帳號被建立了. 

END

你可能感興趣的文章

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

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

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

隨機好文

Yii2 使用 MODAL class 呈現內容時,如何防止滑鼠失焦導致頁面自動關閉 Yii2 使用 MODAL class 呈現內容時,如何防止滑鼠失焦導致頁面自動關閉

如何使用行動裝置讀取或上傳檔案到 Z 磁碟 以下文章是專為豐南國中使用環境所寫,如果您不是豐南國中教職員,請忽略本文。

校園MSN使用說明 以下文章是為豐南國中同仁而寫, 如果您非本校教職員,就請參考就好。 期待已經的校園MSN改寫完畢了,簡單說明一下使用方法

取得表單 Checkbox 已被勾選的項目 在 HTML 表單中常常在送出前需要做前端檢查, 除了減少伺服器負擔, 也可以減少使用者一來一往所花費的時間. 表單中大

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