[英]Mass add users AD with Powershell
Import-Module ActiveDirectory
$file = "C:\Users\Administrator\Documents\UsersHR.csv"
$targetDN = "OU=HR,OU=NTTLab,DC=NTTLab,DC=internal"
$importedUsers = Import-Csv $file
foreach ($user in $importedUsers)
{
$Username = $User.Username
$Password = $User.Password
$Firstname = $User.Firstname
$Lastname = $User.Surname
$Name = $User.Firstname + $User.Lastname
$OU = "OU=HR,OU=NTTLab,DC=NTTLab,DC=internal"
$company = $User.company
$department = $User.department
$Password = $User.Password
New-ADUser -SamAccountName $Username -Name $Name -GivenName $Firstname -Surname $Lastname -Enabled $true -DisplayName "$Lastname, $Firstname" -Path $OU -Company $Company -Department $department -AccountPassword $Password -ChangePasswordAtLogon $true
}
我正在使用 Windows Server 2016 的 VM。我正在嘗試使用 PowerShell ISE 將多個用戶一次添加到 AD,但我遇到了幾個關於名稱的錯誤。 它要么格式不正確,要么是空的,要么是手動要求的
你沒有說它在抱怨什么,但我認為是這樣的:
$Username = $User.Username
...
New-ADUser -SamAccountName $Username
Active Directory 中有幾個用戶命名屬性。 sAMAccountName
屬性是一個簡短的用戶名。 它必須是 20 個字符或更少。 盡管@
字符在技術上是允許的,但通常從不使用。 事實上,AD Users and Computers 不會讓你在其中輸入@
。
您文件中的“用戶名”更適合userPrincipalName
屬性。
但是您仍然需要為sAMAccountName
找出一些東西。 我們的組織使用姓氏(裁剪為 18 個字符)和名字的前兩個字母。 這看起來像這樣:
Import-Module ActiveDirectory
$file = "C:\Users\Administrator\Documents\UsersHR.csv"
$targetDN = "OU=HR,OU=NTTLab,DC=NTTLab,DC=internal"
$importedUsers = Import-Csv $file
foreach ($user in $importedUsers)
{
$SamAccountName = "$($User.Surname.Substring(0, [System.Math]::Min(18, $User.Surname.Length)))$($User.Firstname)"
$UserPrincipalName = $User.Username
$Password = $User.Password
$Firstname = $User.Firstname
$Lastname = $User.Surname
$Name = "$($User.Firstname) $($User.Surname)"
$OU = "OU=HR,OU=NTTLab,DC=NTTLab,DC=internal"
$company = $User.company
$department = $User.department
$Password = $User.Password
New-ADUser -SamAccountName $SamAccountName -UserPrincipalName $UserPrincipalName -Name $Name -GivenName $Firstname -Surname $Lastname -Enabled $true -DisplayName "$Lastname, $Firstname" -Path $OU -Company $Company -Department $department -AccountPassword $Password -ChangePasswordAtLogon $true
}
我還修復了您如何定義$Name
,因為它沒有空格,並且您使用的是$User.Lastname
而不是$User.Surname
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.