你是否厭倦了每天都要打開Active Directory (AD) 使用者和電腦 (ADUC),點來點去,打錯字,並且重複進行創建新使用者帳戶的過程?如果是的話,你需要使用 PowerShell 的 New-ADUser cmdlet 自動化使用 Active Directory 添加使用者的常見程序!
現在是周五晚上,離你計劃周末回家只有一小時的時間。這是個忙碌的一周,所以你已經計劃和你最親密的朋友們一起觀看重要比賽。但是,你的老闆隨意走過來問:“你有收到郵件嗎?你能在今天結束之前處理這個嗎?”你迅速打開了 Microsoft Outlook,果然是一封來自 HR 部門的郵件,你的經理也被抄送在內,要求你在離開辦公室之前提供 400 個新員工的 Active Directory (AD) 帳戶。太好了,比賽泡湯了。
你迅速在網上搜索了一些選項來加快創建這些使用者帳戶的速度,並發現你可以使用命令行和一個名為 New-ADUser 的 PowerShell cmdlet 自動化 AD 帳戶的創建。
通常,管理員會通過使用安裝在桌面電腦上的Active Directory 使用者和電腦MMC 擴展來手動創建 AD 帳戶,該擴展是通過遠程伺服器管理工具 (RSAT)安裝的。但是使用這種方式創建 AD 使用者帳戶平均需要三分鐘。創建 AD 使用者帳戶並不是一項光榮的工作,非常適合自動化。
管理員使用 New-ADUser cmdlet 創建 AD 使用者帳戶有三種常見的方法。
- 使用所需和附加的 cmdlet 参数添加一个活动目录用户帐户。
- 使用 Instance 参数复制现有的 AD 用户对象以创建一个新帐户。
- 将 Import-Csv cmdlet 与 New-ADUser cmdlet 配对,使用逗号分隔值 (CSV) 文件创建多个活动目录用户对象。
有时可以将这些做法结合起来,以创建更高效的解决方案。例如,您可以使用这三个选项来创建一个模板 AD 帐户,然后使用 CSV 文件将其复制以生成多个新的 AD 帐户。
在本文中,您将学习如何使用 New-AdUser 利用这些方法的优势。
使用 ManageEngine ADManager Plus 管理和报告活动目录、Exchange 和 Microsoft 365。立即下载免费试用版!
先决条件/要求
在开始使用 New-AdUser cmdlet 之前,您首先需要确保满足一些先决条件。
- Windows PowerShell 5.1
- 已安裝遠端伺服器管理工具(RSAT)套件。此套件安裝了包含Active Directory PowerShell 模組的
New-AdUser
cmdlet - 登入到與要建立使用者帳戶的同一網域的 Windows 電腦上
- 以具備建立新使用者帳戶權限的 AD 使用者帳戶登入
滿足這些需求後,您就可以開始了!
使用 New-ADUser cmdlet 建立單一使用者帳戶
讓我們首先建立一個單一使用者帳戶,以示範New-ADUser
如何在基本層級上運作。您會發現,New-ADUser 幾乎沒有必填參數。實際上,唯一的必填參數是Name
參數,但通常不單獨使用。
通常您會使用許多不同的參數來建立使用者帳戶。幸運的是,大多數參數都很容易理解,並且與 ADUC 中看到的相匹配。如下例所示,您可以輕鬆使用許多參數。每個參數大致對應到一個使用者帳戶屬性。
請注意,在示例中我們使用了反引號。這只是為了避免過長的單行以提高可讀性。
AD 使用者物件所在的組織單位(OU)不得有重複的 SamAccountName。
帳戶已創建,確認帳戶是使用Get-ADUser
cmdlet創建的。下面可以看到Get-AdUser
返回了剛創建的使用者帳戶的一些常見屬性。
複製現有的AD使用者物件
另一種帳戶創建方法是複製現有的AD使用者物件,並將其用作新的AD帳戶的範本。這種方法有幾個好處:
- 它節省了逐個指定每個參數的時間
- 它有助於標準化AD帳戶的創建
- 它防止了手動帳戶創建導致的人為錯誤,並允許同一團隊的員工具有相同的自定義AD屬性
對於這個例子,你將使用剛創建的帳戶作為範本(kesapp-test)。也許你需要創建一個具有相同狀態、位置、部門、國家和城市 AD屬性的新使用者帳戶。這個新帳戶將是員工詹姆斯·布朗的帳戶。
請注意,此方法存在一個限制,只能複製以下鏈接中列出的AD帳戶屬性。欲了解更多信息,請查看複製使用者屬性的Microsoft文檔頁面。
第一步是找到将用作模板的AD用户帐户,并通过Properties
参数提供要复制的所有属性。为此,使用如下所示的Get-ADUser
cmdlet。这只是将AD用户对象存储在$template_account
变量中。
请注意,第二行将模板对象的UserPrincipalName
(UPN)属性设置为$null
。这是为了确保模板的UPN是唯一的。每个AD用户帐户必须具有唯一的UPN。
一旦捕获到模板用户帐户,您可以将该对象用作Instance
参数的值,并提供任何用户特定的参数以填充其他属性,如下所示。
现在,您应该有一个使用模板对象带入了所有允许的AD属性的James帐户。
用户帐户模板的注意事项
使用此方法的一个常见错误是在捕获模板对象时使用*通配符作为Properties
参数。管理员这样做是因为他们希望一次性复制所有用户帐户属性。但这是行不通的。
例如,下面的命令将引发错误:
這種方法的問題在於,UserPrincipalName屬性需要在整個AD Forest中是唯一的。因此,在New-ADUser
命令中應該覆蓋UPN,或者在模板變量中將其設置為空(如下所示)。
使用通配符方法失敗的另一個原因是,通配符複製的一些AD屬性是只讀的(由安全帳戶管理器擁有)。

使用CSV文件創建新用戶帳戶
更進一步的是,從CSV文件中讀取員工帳戶,並使用New-ADUser創建AD用戶帳戶。
許多組織通常使用此解決方案來自動化帳戶創建,配合HR系統創建新員工入職信息的平面文件。
假設您收到了一個包含新員工信息的CSV文件。CSV文件中的每一行表示一個員工,並具有以下列:FirstName,LastName,Department,State,EmployeeID和Office。用戶登錄帳戶的命名慣例是將員工的姓氏首字母與姓氏相連,例如ksapp代表員工Kevin Sapp。
一旦您有了CSV文件,請使用Import-Csv
來讀取CSV文件,並將每一行作為單個對象捕獲。然後迭代每一行,將CSV文件中的相應字段傳遞給New-ADUser
的預期參數。您可以在下面看到一個示例。
使用ManageEngine ADManager Plus管理和報告Active Directory、Exchange和Microsoft 365。 下載免費試用版!
總結
在本文中,您學會了使用三種不同方法來提供新的用戶帳戶:
- 單個帳戶創建
- 從範本複製用戶帳戶
- 使用CSV文件創建多個帳戶
這些是在您的環境中提供新用戶的基本方法。當您通過創建PowerShell函數和模塊將它們捆綁在一起時,這些方法非常有效。您甚至可以更進一步,使用SQL或Oracle數據庫作為源(而不是CSV文件)創建自己的自動化流程。根據您獨特的需求和用例,請隨意利用每種方法。
希望這些信息能夠幫助您!您學到了一項新技能,並能夠在不犧牲工作與生活平衡的情況下參加派對與朋友一起度過!