Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Импорт из csv в Active Directory и специфические атрибуты

Ответить
Настройки темы
PowerShell - [решено] Импорт из csv в Active Directory и специфические атрибуты

Аватара для AssGuard

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день.

Есть задача по созданию нескольких сотен пользователей в 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 values
At 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

Отправлено: 17:28, 28-05-2015

 

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Дык пишет, что "Значение атрибута не было в приемлемом диапазоне значений". Проверяйте количество параметров передаваемых командлету New-ADUser.

Отправлено: 17:46, 28-05-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для AssGuard

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добавлял и больше параметров, но без
Код: Выделить весь код
-OtherAttributes @{'KZIIN'=$iin;'KZCLASS'=$class;'KZALTEMAIL'=$email;'KZROLE'=$role} `
- работало. Добавляю именно эту строку - тупит.

Отправлено: 18:05, 28-05-2015 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Посмотрите в схеме, какой синтаксис имеют атрибуты в схеме.

Код: Выделить весь код
$filter = "ldapDisplayName -eq 'KZIIN' -or ldapDisplayName -eq 'KZCLASS' -or ldapDisplayName -eq 'KZALTEMAIL' -or ldapDisplayName -eq 'KZROLE'"
Get-ADObject -Filter  $filter -SearchBase (Get-ADRootDSE).SchemaNamingContext -Properties attributeSyntax,oMSyntax
Syntaxes - и сверьте правильность

Так же на тестовом пользователе можно протестировать каждый атрибут в отдельности и выявить проблемный.

Код: Выделить весь код
Set-ADUser user -Replace @{"KZIIN"='value'}

Последний раз редактировалось Kazun, 28-05-2015 в 19:10.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:04, 28-05-2015 | #4


Аватара для AssGuard

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 17:01, 29-05-2015 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Импорт из csv в Active Directory и специфические атрибуты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Не работает импорт пользователей в AD из CSV-файла fcdm25 Скриптовые языки администрирования Windows 34 25-09-2014 14:36
2012 R2 - [решено] Не работает импорт пользователей в AD из CSV-файла fcdm25 Windows Server 2012/2012 R2 1 21-02-2014 19:51
PowerShell - [решено] Импорт из CSV в AD с помощью PowerShell rox33 Скриптовые языки администрирования Windows 23 20-07-2012 15:45
2008 R2 - Импорт пользователей из Active Directory на внутренний сайт Rulezzzz Windows Server 2008/2008 R2 1 13-05-2011 08:51
[решено] Импорт/экспорт пользователей в Active Directory UnDetect Microsoft Windows NT/2000/2003 7 03-02-2006 11:33




 
Переход