簡體   English   中英

使用 Powershell 批量添加用戶 AD

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM