Показать полную графическую версию : Импорт пользователей с помощью 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".
Выводит -
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 : НПО
Никаких проблем.
PS > gc F:\importcsv.csv
UPN;SamA;Name;City;Department;Title;Email;Ou;Tel;organiz
vsherbachenko@cb.npo;vsherbachenko;Щербаченко В.П;Химки;968;Ведущий специалист ОАО;vpshch@cb.npo;cb.npo/dep/968;28-50;Н
ПО
PS > Import-Csv F:\importcsv.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 : НПО
В том то и дело) А когда начинаю выполнять import.csv.ps1 выводит сообщение - Не удается проверить аргумент для параметра "Name"
Все корректно отрабатывает.
http://img406.imageshack.us/img406/7994/98354058.png (http://imageshack.us/photo/my-images/406/98354058.png/)
Uploaded with ImageShack.us (http://imageshack.us)
Ну лан, буду дальше разбираться, странно что у вас отрабатывает, а меня пишет именно эту ошибку, хотя все идентично. Спасибо за помощь
mrfedoroff
18-01-2012, 16:45
У меня по вашей схеме тоже не сработало, с той же ошибкой "Не удается проверить аргумент для параметра "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","Иванов","Иван"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.