[精讚] [會員登入]
7926

利用 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

你可能感興趣的文章

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

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

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

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

學校活動照片與影片如何取得? 從今年度開始,將要求各位行政同仁把照片或活動影片擺到 Google 雲端硬碟

飛碟 UPS 市電斷電時自動關機 買了一張飛碟 UPS 的 SNMP 網卡, 原本是希望學校的兩部 VMware ESXi 在停電時能自動關機, 沒想到,

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

如何安裝辦公室印表機 本篇是針對豐南國中所寫的,其他網友其參考一下就好。 學校各導師辦公室及專任辦公室的印表機使用年限大概都有 8年以上了,廠

【停課不停學】豐南國中Google Classroom 登入篇 因為疫情導致的停課 本校採用的線上教學平臺是 Google Classroom 本篇解說如何登入 1. 帳號與密碼 本校