none
Экспорт контактов или массовое создание контактов RRS feed

  • Вопрос

  • Забавная задача. Есть CSV фаил с контактами, менять его запросами и переделывать могу как угодно это не принципиально, понимаю что нужно сделать какую-то структуру... делаю так 

    Name,ExternalAddress
    Kim Abercrombie,Kim@contoso.com
    Don Funk,Don@fabrikam.com
    Sanjay Patel,Sanjay@fabrikam.com
    Amy Strande,Amy@contoso.com

    после запускаю 

    Import-CSV "C:\ContactsList.CSV" | ForEach-Object {Enable-MailContact -Identity $_.Name -ExternalEmailAddress $_.ExternalAddress}

    Потираю руки ... но тут то я и забыл, что Exchange , а точнее адресная книга работает с запросами в АД... А их то у меня нет...

    Вот думаю как бы мне их массово всех запихнуть именно в контакты!?


    3 апреля 2012 г. 14:20

Ответы

Все ответы

  • Если 2008r2, то можно сначала в AD создать контакты:

    Import-Module ActiveDirectory

    New-ADObject -Type contact bla-bla-bla

    Потом подключить контакты к эксченджу через Enable-MailContact.

    3 апреля 2012 г. 14:39
  • Если 2008r2, то можно сначала в AD создать контакты:

    Import-Module ActiveDirectory

    New-ADObject -Type contact bla-bla-bla

    Потом подключить контакты к эксченджу через Enable-MailContact.

    Как из CSV файла забрать данные? С точными атрибутами? Имя, фамилия ... для примера ...

    Import-CSV -Path "C:\scripts\createuserbat.csv" | ForEach-Object -process {New-ADuser -Name $_.Name -Surname $_.Surname -City $_.City -Department $_.Department -GivenName $_.GivenName -Title $_.Title -Description $_.Description -DisplayName $_.DisplayName -Division $_.Division -EmailAddress $_.EmailAddress -MobilePhone $_.MobilePhone -ScriptPath $_.ScriptPath -Path "ou=Users_Test,dc=Test,dc=ru" -CannotChangePassword $true -ChangePasswordAtLogon $false -PasswordNotRequired $true -AccountPassword (ConvertTo-SecureString -AsPlainText $_.Password -Force) -Company TEST}

    Это для пользователей а для контактов как?! 

    3 апреля 2012 г. 14:47
  • http://community.office365.com/ru-ru/w/exchange/1303.aspx Нашел хорошую статью 

    3 апреля 2012 г. 14:55
  • Не пойму как обьеденить 3 значения в одно.

    Вот пример CSV файла.

    Name,LastName,FirstName,Company,Department,Phone,ExternalEmailAddress
    Вася,Пупкинов,Пупкин,Пупкин Group,Руководство,Президент,123,pupkin@pup.ru

    Запускаю экспорт.

    Import-Csv .\ExternalContacts.csv|%{New-MailContact -Name $_.Name -DisplayName $_.Name -ExternalEmailAddress $_.ExternalEmailAddress -FirstName $_.FirstName -LastName $_.LastName}

    Контакт создается но DisplayName идет как Имя - Пупкин, мне нужно что бы DisplayName был из трех значений Name + FirstName + LastName

    Как это в скрипте сделать?! 

    4 апреля 2012 г. 7:37
  • Попробуйте вместо $_.Name использовать конструкцию ($_.Name+$_.FirstName+$_.LastName)

    4 апреля 2012 г. 8:04
  • Попробуйте вместо $_.Name использовать конструкцию ($_.Name+$_.FirstName+$_.LastName)

    Значение соединяет , но пробелов нет
    , пробывал с пробелами запускать эффект такой же ... пробелы как между переменными поставить? 
    4 апреля 2012 г. 8:38
  • двойная кавычка-пробел-двойная кавычка - " "

    4 апреля 2012 г. 9:07
  • Станислав, спасибо за ответ.

    Import-Csv .\ExternalContacts.txt|%{New-MailContact -Name ($_.Name" "+$_.FirstName" "+$_.LastName) -DisplayName $_.LastName -xternalEmailAddress $_.ExternalEmailAddress -FirstName $_.FirstName -LastName $_.LastName}

    Верно?

    4 апреля 2012 г. 9:32
  • нет. должно быть $_.Name+" "+$_.FirstName+" "+$_.LastName

    • Помечено в качестве ответа butunin 4 апреля 2012 г. 9:58
    4 апреля 2012 г. 9:44
  • Станислав, скажите, а можно ли взять только первую букву какого-то значения например только первую букву lastname?

    И второй вопрос, когда создается контакт ему присваивается значение alias как ?????? я так понимаю что идет подстановка name , и АД не принимает русские буквы. Не красиво смотрится ... возможно как-то исправить?! 

    4 апреля 2012 г. 10:47
  • У строковых переменных есть метод Substring, который позволяет брать подстроку переменной. Например:

    PS C:\Windows\system32> $test = "test"

    PS C:\Windows\system32> $test.Substring(0,1)
    t

    Первая переменная в методе показывает с какого места брать строку (считает с нуля), вторая - какой длинны.

    Па второму вопросу - надо добавить столбец с алиасами на латинице в файл с данными.

    4 апреля 2012 г. 11:09