Jump to content
СофтФорум - всё о компьютерах и не только

Импорт из csv в Active Directory и специфические атрибуты

Recommended Posts

Добрый день.

Есть задача по созданию нескольких сотен пользователей в AD на базе WinServer 2012R2.

Есть csv-файл со всеми данными, есть скрипт для powershell для импорта, но есть один нюанс: нужно заполнить 4 специфических поля KZIIN, KZCLASS, KZALTEMAIL, KZROLE, которые также есть в csv.

Суть проблемы: скрипт не заполняет специфические поля, хотя они в АД созданы, без строк по заполнению полей - все работает отлично.

Как пофиксить?

Import-Module ActiveDirectory$pass = ConvertTo-SecureString -String "Password01" -AsPlainText -Force$ou = "OU=8A,OU=8Classes,OU=Students,OU=KRG,DC=our,DC=domain,DC=KZ"$dom = "krg"$users = Import-CSV C:\Users\Admin\Desktop\users.csv $users | ForEach-Object {    #Имя и фамилия латиницей    $gn = $_.GivenName_lat    $sn = $_.Surname_lat    #Класс    $class = $_.Class+$_.Liter    #Личная почта    $email = $_.altEmail    #Мобильный    $MobilePhone = $_.mobile      #Имя и фамилия кириллицией    $name = "$($_.GivenName) $($_.Surname)"    #ИИН    $iin = $_.IIN    #Имя    $givenname = $_.GivenName    #Фамилия    $surname = $_.Surname    #Грубо говоря корп.почта и имя пользователя АД    $upn = $_.Upn    #Создается имя пользователя вида Фамилия_И.поддомен    $gn1 = $gn.SubString(0,1)    $prefix = $sn+"_"+$gn1    $gn2 = $gn.SubString(0,1)    $prefix = $sn+"_"+$gn2    $sam = $prefix+"."+$dom    #Почта корпоративная    $mail = $upn    #Мобильный телефон    $phone = $MobilePhone    #Роль в системе    $role = "student"            if (Get-ADUser -Filter {UserPrincipalName -eq $upn})    {        Write-Host "User exists: $($upn)"        Set-ADUser -Server krg-srv-dc01 -Identity $sam -GivenName $givenname -Surname $surname -DisplayName $name -sAMAccountName $sam -OtherAttributes @{KZIIN=$iin;KZCLASS=$class;KZALTEMAIL=$email;KZROLE="student"}        return    }    else    {        New-ADUser -Server krg-srv-dc01 `        -UserPrincipalName $upn `        -GivenName $givenname `        -Surname $surname `        -Name $name `        -DisplayName $name `        -sAMAccountName $sam `        -EmailAddress $mail `        -OfficePhone $phone `        -Path $ou `        -AccountPassword $pass `        -PasswordNeverExpires $True `        -Enabled $True `        -ChangePasswordAtLogon $False `        -OtherAttributes @{'KZIIN'=$iin;'KZCLASS'=$class;'KZALTEMAIL'=$email;'KZROLE'=$role} `            }}

Вот вывод консоли:

New-ADUser : A value for the attribute was not in the acceptable range of valuesAt line:1 char:1+ New-ADUser -Server krg-srv-dc01 -UserPrincipalName 'Abeuov_A@krg.our.domain.kz'  ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    + CategoryInfo          : NotSpecified: (CN=Абеуов Алибе...is,DC=domain,DC=KZ:String) [New-ADUser], ADException    + FullyQualifiedErrorId : ActiveDirectoryServer:8322,Microsoft.ActiveDirectory.Management.Commands.NewADUser
Link to comment
Share on other sites

Выяснил что в схеме было указано значение для атрибута KZIIN в 12 символов, а в csv - 11.
Вот если бы ошибки в лога powershell был более внятными...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...