none
Импорт CSV в лес 2008R2 RRS feed

  • Вопрос

  • Коллеги, столкнулся с проблемой, никак не могу понять почему так.

    есть у меня CSV файл, формата:

    Name,Displayname,sAMAccountName,telephoneNumber,userPrincipalName,Mail
    Fast Test,Fast Test,Test,507022,Test@comtoso.local,Test@comtoso.ru
    

    Есть к всему этому делу скприпт PS:

    Import-Csv .\123.csv | foreach-object {
    New-ADUser -Server "dc-1:389" -SearchBase "CN=Users,DC=comtoso,DC=local" -Name $_.DisplayName -UserPrincipalName $_.UserPrincipalName -SamAccountName $_.SamAccountName -GivenName $_.GivenName -DisplayName $_.DisplayName -email $_.mail -TelephoneNumber $_.TelephoneNumber -AccountPassword (ConvertTo-SecureString Test123 -AsPlainText -force) -Enabled $True -PasswordNeverExpires $True -PassThru }
    
    

    И ничего особенного, но куча проблем.

    PS не видит поле Name (null or empty)

    PS не хочет записывать SamAccountName - делает пустым

    PS не хочет записывать telephoneNumber - делает пустым (но без проблем записывает телефон в поле mobile)

    подскажите, что делаю не так.

    9 августа 2016 г. 4:41

Ответы

Все ответы

  • Для Import-Csv .\123.csv укажите кодировку и разделитель в параметрах и проверьте вывод этой команды.

    Сазонов Илья

    https://isazonov.wordpress.com/

    • Помечено в качестве ответа SAMbI4 9 августа 2016 г. 6:13
    9 августа 2016 г. 4:58
    Модератор
  • PS C:\1> Import-Csv .\123.csv -Encoding UTF8 -Delimiter ","
    
    
    Name              : Fast Test
    Displayname       : Fast Test
    sAMAccountName    : Test
    telephoneNumber   : 507022
    userPrincipalName : Test@comtoso.local
    Mail              : Test@comtoso.ru
    

    9 августа 2016 г. 5:12
  • Все поля прочитались нормально. Теперь New-ADUser срабатывает?

    Сазонов Илья

    https://isazonov.wordpress.com/

    9 августа 2016 г. 5:46
    Модератор
  • все тоже самое....

    New-ADUser : Cannot bind parameter because parameter 'Name' is specified more than once. To provide multiple values to
    parameters that can accept multiple values, use the array syntax. For example, "-parameter value1,value2,value3".
    At C:\1\import_csv.ps1:2 char:94
    + ... me $_.Username -Name $_.GivenName -DisplayName $_.DisplayName -email $_.mail -Te ...
    +                    ~~~~~
        + CategoryInfo          : InvalidArgument: (:) [New-ADUser], ParameterBindingException
        + FullyQualifiedErrorId : ParameterAlreadyBound,Microsoft.ActiveDirectory.Management.Commands.NewADUser

    9 августа 2016 г. 5:53
  • PS C:\Users\Administrator> Import-CSV 1.csv
    
    
    Name              : Fast Test
    Displayname       : Fast Test
    sAMAccountName    : Test
    telephoneNumber   : 507022
    userPrincipalName : Test@comtoso.com
    Mail              : Test@comtoso.ru
    
    
    
    PS C:\Users\Administrator> Import-CSV 1.csv | New-ADUser -AccountPassword (ConvertTo-SecureString ';CgR/BT^m8d@;x$Hg,\]E
    %Z%Xke' -AsPlainText -force) -Enabled $True -PasswordNeverExpires $True -PassThru
    
    
    DistinguishedName : CN=Fast Test,CN=Users,DC=contoso,DC=com
    Enabled           : True
    GivenName         :
    Name              : Fast Test
    ObjectClass       : user
    ObjectGUID        : a67708c9-9e3b-42d4-9303-e8fd145f710e
    SamAccountName    : Test
    SID               : S-1-5-21-988863312-363203669-2128900122-1116
    Surname           :
    UserPrincipalName : Test@comtoso.com
    

    -SearchBase "CN=Users,DC=comtoso,DC=local"  - Такого параметра нет, есть -Path

    -GivenName $_.GivenName - Где данные для этого поля?

    9 августа 2016 г. 5:53
  • скрипт выглядит вот так:

    Import-Csv .\123.csv -Encoding UTF8 -Delimiter ","| foreach-object {
    New-ADUser -Name $_.Name -UserPrincipalName $_.UserPrincipalName -SamAccountName $_.Username -Name $_.GivenName -DisplayName $_.DisplayName -email $_.mail -TelephoneNumber $_.TelephoneNumber -AccountPassword (ConvertTo-SecureString Test123 -AsPlainText -force) -Enabled $True -PasswordNeverExpires $True -PassThru }
    

    9 августа 2016 г. 5:54
  • скрипт выглядит вот так:

    Import-Csv .\123.csv -Encoding UTF8 -Delimiter ","| foreach-object {
    New-ADUser -Name $_.Name -UserPrincipalName $_.UserPrincipalName -SamAccountName $_.Username -Name $_.GivenName -DisplayName $_.DisplayName -email $_.mail -TelephoneNumber $_.TelephoneNumber -AccountPassword (ConvertTo-SecureString Test123 -AsPlainText -force) -Enabled $True -PasswordNeverExpires $True -PassThru }

    Где в Csv поле $_.GivenName ?
    Зачем дублировать -Name $_.GivenName  и -Name $_.Name?
    • Изменено Kazun 9 августа 2016 г. 5:57
    9 августа 2016 г. 5:56
  • да согласен, косяк...не увидел.

    переделал скрипт:

    Import-Csv .\123.csv -Encoding UTF8 -Delimiter ","| foreach-object {
    New-ADUser -Server "dc-1:389" -Path "CN=users,DC=comtoso,DC=local" -Name $_.Name -UserPrincipalName $_.UserPrincipalName -SamAccountName $_.SamAccountName -DisplayName $_.DisplayName -email $_.mail -telephoneNumber $_.telephoneNumber -AccountPassword (ConvertTo-SecureString Test123 -AsPlainText -force) -Enabled $True -PasswordNeverExpires $True -PassThru }
    

    теперь выдает:

    PS C:\1> .\import_csv.ps1
    New-ADUser : A parameter cannot be found that matches parameter name 'telephoneNumber'.
    At C:\1\import_csv.ps1:2 char:208
    + ... -email $_.mail -telephoneNumber $_.telephoneNumber -AccountPassword (ConvertTo-S ...
    +                    ~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [New-ADUser], ParameterBindingException
        + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.NewADUser

    9 августа 2016 г. 6:04
  • Нет такого параметра 'telephoneNumber' ,есть -OfficePhone
    • Помечено в качестве ответа SAMbI4 9 августа 2016 г. 6:13
    9 августа 2016 г. 6:08
  • хм, не логично....атрибут нызвается telephoneNumber....

    работает, все поля заполнились, кроме "SN" - который указан небыл...его так и указывать как SN?

    9 августа 2016 г. 6:11
  • хм, не логично....атрибут нызвается telephoneNumber....

    работает, все поля заполнились, кроме "SN" - который указан небыл...его так и указывать как SN?


    А где в скрипте указано -Surname?
    9 августа 2016 г. 6:13
  • отлично!

    спасибо господа!

    9 августа 2016 г. 6:14