Импорт пользователей с помощью POwerShell и CSV файла.
Добрый день. Столкнулся с такой проблемой, есть сервер - Windows 2008r2 с установленный на нем AD.
Решил написать скрипт который будет импортировать пользователей из csv файла import-csv C:\Distr\temp\import.csv | ForEach-Object {New-ADUser ` -Name $_.Name ` -SamAccountName $_.SamA ` -DisplayName $_.Name ` -CannotChangePassword $false ` -ChangePasswordAtLogon $true ` -City $_.City ` -Department $_.Department ` -Title $_.Title ` -UserPrincipalName $_.UPN ` -EmailAddress $_.Email ` -Organization $_.organiz ` -OfficePhone $_.Tel ` -AccountPassword $_.password ` } соответственно csv файл имеет формат Name;SamA;Name;City;Department;Title;UPN;Email;organiz;Tel Kvakin;Kvakin;Kvakin;Москва;968;Konstruktor;vsherbachenko@cb.npo;vpshch@cb.npo;test;28-50 на что powershell пишет ошибку - New-Aduser : не удается проверить аргумент для параметра "Name". Аргумент пустой или имеет значение NULL. Помогите пжста решить проблемму, что делаю не так? |
1) Name;SamA;Name - почему два Name?
2) import-csv C:\Distr\temp\import.csv - корректно отображает данные? |
1) Извиняюсь, опечатался.
2) Выводит знаки вопросов в место русских букв. Хотя в csv все нормально, проблема в кодировке? |
2) Да проблема в кодировке,надо сохранить в Unicode(Notepad -SaveAs - выбираем Unicode).
|
Знаки вопросов исчезли, но шибка - не удается проверить аргумент для параметра "Name". Аргумент пустой или имеет значение NULL осталась( В чем еще может быть ошибка?
|
Покажите действительные данные,которые у вас есть,приведите пример,реальных данных,где происходит данная проблема, и привести сюда ошибку.Так как приведенные данные в вопросе,отрабатывают без проблем. Корректно ли определяется разделитель ";"?
import-csv C:\Distr\temp\import.csv | %{$_.Name} - работает? |
Команда import-csv C:\Distr\temp\import.csv | %{$_.Name} - ничего не выводит
Пример реальных данных Параметр OU не используется UPN;SamA;Name;City;Department;Title;Email;Ou;Tel;organiz lbaranova@cb.npo;lbaranova;Баранова Л.А;Химки;968;Инженер;lbaranova@cb.npo;cb.npo/dep/969;31-02;НПО |
Попробуйте запустить:
import-csv C:\Distr\temp\import.csv -Delimeter ";" |
Ошибка - Import-Csv : Не удается найти параметр, соответствующий имени параметра "Delimeter".
|
Описался -Delimiter
|
Выводит -
UPN;SamA;Name;City;Department;Title;Email;Ou;Tel;organiz -------------------------------------------------------- vsherbachenko@cb.npo;vsherbachenko;Щербаченко В.П;Химки;968;Ведущий специали... |
import-csv C:\Distr\temp\import.csv -Delimiter ";"
|
Выводит -
UPN : vsherbachenko@cb.npo SamA : vsherbachenko Name : Щербаченко В.П City : Химки Department : 968 Title : Ведущий специалист ОАО Email : vpshch@cb.npo Ou : cb.npo/dep/968 Tel : 28-50 organiz : НПО |
Файл приложите.
|
Вложений: 1
файл
|
Никаких проблем.
Код:
PS > gc F:\importcsv.csv |
В том то и дело) А когда начинаю выполнять import.csv.ps1 выводит сообщение - Не удается проверить аргумент для параметра "Name"
|
|
Ну лан, буду дальше разбираться, странно что у вас отрабатывает, а меня пишет именно эту ошибку, хотя все идентично. Спасибо за помощь
|
У меня по вашей схеме тоже не сработало, с той же ошибкой "Не удается проверить аргумент для параметра "Name""
Я так понимаю во время исполнения командлета New-ADUser ему для параметров значения не передаются, т.е. вот этот синтаксис неверен: -Name $_.Name Сработала другая комбинация: $blablabla = Import-Csv users.csv $blablabla | New-ADUser только я csv файл предварительно подготовил: заголовки столбцов в точности соответствовали параметрам командлета New-ADUser "Name","SamAccountName","UserPrincipalName","Surname","GivenName" "Иван Иванов","i.ivanov","i.ivanov@qq.local","Иванов","Иван" |
Время: 03:07. |
Время: 03:07.
© OSzone.net 2001-