Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Импорт пользователей с помощью POwerShell и CSV файла. (http://forum.oszone.net/showthread.php?t=221682)

Temafet 28-11-2011 17:09 1805028

Импорт пользователей с помощью 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.
Помогите пжста решить проблемму, что делаю не так?

Kazun 28-11-2011 17:40 1805048

1) Name;SamA;Name - почему два Name?
2) import-csv C:\Distr\temp\import.csv - корректно отображает данные?

Temafet 28-11-2011 18:31 1805083

1) Извиняюсь, опечатался.
2) Выводит знаки вопросов в место русских букв. Хотя в csv все нормально, проблема в кодировке?

Kazun 28-11-2011 19:03 1805111

2) Да проблема в кодировке,надо сохранить в Unicode(Notepad -SaveAs - выбираем Unicode).

Temafet 28-11-2011 19:12 1805121

Знаки вопросов исчезли, но шибка - не удается проверить аргумент для параметра "Name". Аргумент пустой или имеет значение NULL осталась( В чем еще может быть ошибка?

Kazun 28-11-2011 19:25 1805131

Покажите действительные данные,которые у вас есть,приведите пример,реальных данных,где происходит данная проблема, и привести сюда ошибку.Так как приведенные данные в вопросе,отрабатывают без проблем. Корректно ли определяется разделитель ";"?

import-csv C:\Distr\temp\import.csv | %{$_.Name} - работает?

Temafet 28-11-2011 19:48 1805145

Команда 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;НПО

Kazun 28-11-2011 20:23 1805170

Попробуйте запустить:
import-csv C:\Distr\temp\import.csv -Delimeter ";"

Temafet 28-11-2011 20:33 1805176

Ошибка - Import-Csv : Не удается найти параметр, соответствующий имени параметра "Delimeter".

Kazun 28-11-2011 20:51 1805183

Описался -Delimiter

Temafet 28-11-2011 20:52 1805185

Выводит -

UPN;SamA;Name;City;Department;Title;Email;Ou;Tel;organiz
--------------------------------------------------------
vsherbachenko@cb.npo;vsherbachenko;Щербаченко В.П;Химки;968;Ведущий специали...

Kazun 28-11-2011 20:55 1805189

import-csv C:\Distr\temp\import.csv -Delimiter ";"

Temafet 28-11-2011 20:57 1805191

Выводит -


UPN : vsherbachenko@cb.npo
SamA : vsherbachenko
Name : Щербаченко В.П
City : Химки
Department : 968
Title : Ведущий специалист ОАО
Email : vpshch@cb.npo
Ou : cb.npo/dep/968
Tel : 28-50
organiz : НПО

Kazun 28-11-2011 20:59 1805192

Файл приложите.

Temafet 28-11-2011 21:07 1805195

Вложений: 1
файл

Kazun 28-11-2011 21:09 1805199

Никаких проблем.

Код:

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    : НПО


Temafet 28-11-2011 21:17 1805204

В том то и дело) А когда начинаю выполнять import.csv.ps1 выводит сообщение - Не удается проверить аргумент для параметра "Name"

Kazun 28-11-2011 21:25 1805212

Все корректно отрабатывает.



Uploaded with ImageShack.us

Temafet 28-11-2011 21:37 1805220

Ну лан, буду дальше разбираться, странно что у вас отрабатывает, а меня пишет именно эту ошибку, хотя все идентично. Спасибо за помощь

mrfedoroff 18-01-2012 16:45 1838953

У меня по вашей схеме тоже не сработало, с той же ошибкой "Не удается проверить аргумент для параметра "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-