Сценарий Powershell: чтение контактов из файла Excel и создание для них почтовых ящиков в Microsoft Exchange.
Я попробовал что-то и не очень успешно. Я не хочу знать полное решение этой проблемы, но с чего мне начать (или, может быть, решение уже существует)? Должен ли я лучше конвертировать файл Excel в CSV или XML? Или, может быть, я должен положить немного C# в нем?
Вот еще несколько деталей:
- Атрибуты, которые должны быть прочитаны и затем заполнены в почтовом ящике: Имя, Фамилия, Отображаемое имя, Псевдоним, электронная почта (генерируется из имени и фамилии).
- Флажок должен быть снят: "Автоматически обновлять адреса электронной почты на основе политики адресов электронной почты"
- Создавайте электронные письма из имен с дополнительным доменом (пример: Имя: Денис, Фамилия: Ричи, электронная почта: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.