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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Создание почтовых ящиков из *.csv (http://forum.oszone.net/showthread.php?t=182557)

malkinfedor 10-08-2010 09:21 1470565

Создание почтовых ящиков из *.csv
 
Добрый день коллеги!
В компании сейчас наплыв новых юзеров, им нужны учетки в почте, соответственно решил через скрипт их создать.
По одному создаются, вот такой командой :

Код:

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 1470608

deepred, пробовал и без object, все равно ничего не выходит.

malkinfedor 10-08-2010 10:57 1470638

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 1470640

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 1470645

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

malkinfedor 11-08-2010 17:14 1471565

А ларчик просто открывался, оказывается нужно все вручную было забивать. До этого копировал просто с сайта, и ошибку выдавал, а вручную тоже набираешь и все гуд.


Время: 13:26.

Время: 13:26.
© OSzone.net 2001-