Индивидуальные пароли для пользователя AD | Импорт через CSV - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь импортировать пользователей в AD через CSV / PowerShell. Импорт теперь работает нормально, пользователи и все атрибуты верны, но кажется, что пароли неправильно импортируются из моего .csv.

Вот мой .ps1 im, использующий:

#Import required modules
Import-Module ActiveDirectory

#Prompt user for CSV file path
$filepath = Read-Host -Prompt "Enter Path of CSV"

$securePassword = ConvertTo-SecureString $pass -AsPlainText -Force

# Import the file into a variable
$users = Import-Csv $filepath -Delimiter ";"

#Loop through each row and gather information
ForEach ($user in $users) {

    #Gather the user's information
    $fname = $user.FirstName
    $lname = $user.LastName
    $uname = $user.Username
    $email = $user.Email
    $jtitle = $user.Title
    $OUpath = $user.'Organizational Unit'
    $pass = $user.Password
    $SAM = $user.SAM

    #Create new AD user for each user in CSV file
    New-ADUser -Name "$fname $lname" -GivenName $fname -Surname $lname -UserPrincipalName $uname -SamAccountName $SAM -Path $OUpath -AccountPassword $securePassword -PasswordNeverExpires $true -Enabled $true -EmailAddress $email

    # Echo for every user created
}

Кто-нибудь знает, в чем причина?

Спасибо, Мариус

1 Ответ

0 голосов
/ 03 апреля 2020

Вы конвертируете $ pass в безопасную строку перед ее импортом из csv. Итак, фиксированный:

#Import required modules
Import-Module ActiveDirectory

#Prompt user for CSV file path
$filepath = Read-Host -Prompt "Enter Path of CSV"

# Import the file into a variable
$users = Import-Csv $filepath -Delimiter ";"

#Loop through each row and gather information
ForEach ($user in $users) {

    #Gather the user's information
    $fname = $user.FirstName
    $lname = $user.LastName
    $uname = $user.Username
    $email = $user.Email
    $jtitle = $user.Title
    $OUpath = $user.'Organizational Unit'
    $pass = $user.Password
    $SAM = $user.SAM
    $securePassword = ConvertTo-SecureString $pass -AsPlainText -Force
   # The Rest
...