Сценарий Powershell: чтение контактов из файла Excel и создание для них почтовых ящиков в Microsoft Exchange.

Я попробовал что-то и не очень успешно. Я не хочу знать полное решение этой проблемы, но с чего мне начать (или, может быть, решение уже существует)? Должен ли я лучше конвертировать файл Excel в CSV или XML? Или, может быть, я должен положить немного C# в нем?

Вот еще несколько деталей:

  1. Атрибуты, которые должны быть прочитаны и затем заполнены в почтовом ящике: Имя, Фамилия, Отображаемое имя, Псевдоним, электронная почта (генерируется из имени и фамилии).
  2. Флажок должен быть снят: "Автоматически обновлять адреса электронной почты на основе политики адресов электронной почты"
  3. Создавайте электронные письма из имен с дополнительным доменом (пример: Имя: Денис, Фамилия: Ричи, электронная почта:Dennis.Ritchie@testdomain.com).

2 ответа

Решение
$path = "C:\Scripts\05-Script\Contacts.csv"
$Database = "xDB"
$OU = "XUnit/Test"
#$Password = (Get-Credential).Password
$Password = ConvertTo-SecureString "P@ssWord1" -AsPlainText -Force

Import-Csv $path | ForEach-Object   {

    $FirstName = $_."FirstName"
    $LastName = $_."LastName"
    $Alias = $_."Alias"

    $UserPrincipalName = $Alias # +xdomain.com"
    $OtherEmail = $FirstName +"."+ $LastName + "@xdomain.com"
    $DisplayName = $LastName+", "+$FirstName

    New-Mailbox -Alias $Alias `
                -Name $Alias `
                -FirstName $FirstName `
                -LastName $LastName `
                -DisplayName $DisplayName `
                -SamAccountName $Alias  `
                -UserPrincipalName $UserPrincipalName `
                -Database $Database `
                -OrganizationalUnit $OU `
                -Password $Password `
                -ResetPasswordOnNextLogon $false

}

CSV, безусловно, самый простой. Вы можете использовать

Import-CSV foo.csv

прочитать файл. При условии, что вы использовали соответствующие имена заголовков столбцов в первой строке, вы можете использовать их напрямую:

Import-CSV foo.csv | ForEach-Object { $_.Lastname; $_.'Display Name', <# etc. #> }

Enable-Mailbox кажется, команда для создания почтовых ящиков Exchange.

Другие вопросы по тегам