Войти

Показать полную графическую версию : [решено] Создание почтовых ящиков из *.csv


malkinfedor
10-08-2010, 09:21
Добрый день коллеги!
В компании сейчас наплыв новых юзеров, им нужны учетки в почте, соответственно решил через скрипт их создать.
По одному создаются, вот такой командой :

New-Mailbox -UserPrincipalName
"Иванов Петр@corp.company.loc" -Alias ivanov.p -Database "SG1\MBD1" -Name "Ива
нов Петр Петрович" -OrganizationalUnit corp.company.loc/Voronezh/Users/Disable
d -FirstName "Петр Петрович" -LastName Иванов -ResetPasswordOnNextLogon $false

Но хочется же забить их в файл и пусть они себе создаются, сделал такой файлик для пробы, обозвал его recipients.csv:

Alias,Name,UPN,FN,LN
ivanov.p,"Иванов Петр Петрович","Иванов Петр@corp.company.loc","Петр Петрович","Иванов"

Вот таким скриптом запускаю импорт и соответственно пютаюсь создать пользователей:

Import-Csv recipients.csv | foreach-object { New-Mailbox -Alias $_.Alias -name $_.Name -UserPrincipalName $_.UPN -FirstName $_.FN - LastName $_.LN -Password $Password -Database "SG1\MDB1" -OrganizationalUnit corp.company.loc/Voronezh/Users -ResetPasswordOnNextLogon:$false }

Вот такая ошибка выходит:
New-Mailbox : A positional parameter cannot be found that accepts argument '-'.
At line:1 char:57
+ Import-Csv recipients.csv | foreach-object { New-Mailbox <<<< -Alias $_.Alia
s -name $_.Name -UserPrincipalName $_.UPN -FirstName $_.FN - LastName $_.LN -Pa
ssword $Password -Database "SG1\MDB1" -OrganizationalUnit corp.company.loc/Vo
ronezh/Users -ResetPasswordOnNextLogon:$false }
+ CategoryInfo : InvalidArgument: (:) [New-Mailbox], ParameterBin
dingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.Exchange.M
anagement.RecipientTasks.NewMailbox

Так понимаю аргумент у параметра Alias ошибочен. Причем даже если Alias убираем, то пишет ту же ошибку на параметр Name.

Подскажите куда копать, в чем может быть подвох.

Заранее спасибо

malkinfedor
10-08-2010, 10:15
deepred, пробовал и без object, все равно ничего не выходит.

malkinfedor
10-08-2010, 10:57
deepred, с таким разделителем выдает такую ошибку:

New-Mailbox : Cannot validate argument on parameter 'Alias'. The argument is nu
ll or empty. Supply an argument that is not null or empty and then try the comm
and again.
At line:1 char:64
+ Import-Csv recipients.csv | foreach-object { New-Mailbox -Alias <<<< $_.Alia
s -name $_.Name -UserPrincipalName $_.UPN -FirstName $_.FN - LastName $_.LN -Pa
ssword $Password -Database "SG1\MDB1" -OrganizationalUnit corp.ertelecom.loc/Vo
ronezh/Users -ResetPasswordOnNextLogon:$false }
+ CategoryInfo : InvalidData: (:) [New-Mailbox], ParameterBinding
ValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Excha
nge.Management.RecipientTasks.NewMailbox

deepred
10-08-2010, 11:02
malkinfedor,

А файле recipients.csv вы так и оставили запись "Alias,Name,UPN,FN,LN", если да - может попробовать её убрать?

Нашел такой вариант:

import-csv contacts.csv | foreach { new-mailcontact -alias $_.mailnickname -name $_.displayName -ExternalEmailAddress $_.targetaddress -org users }

malkinfedor
10-08-2010, 11:12
deepred, если убираю запись "Alias,Name,UPN,FN,LN" то вообще ничего не пишет и не создает, потому что он с первой строки же берет как раз имена переменных. Ваш вариант создает почтовый контакт, а по сути в нем только имена переменных по другому написаны.

malkinfedor
11-08-2010, 17:14
А ларчик просто открывался, оказывается нужно все вручную было забивать. До этого копировал просто с сайта, и ошибку выдавал, а вручную тоже набираешь и все гуд.




© OSzone.net 2001-2012