Решено массовое создание почтовых ящиков

Nick

Случайный прохожий
Добрый день коллеги, подскажите как в Exchange server 2019 выполнить массовое создание почтовых ящиков (например скриптом) ? Пользователей около 450 человек.
 
1. Создание файла со списком пользователей.

Первое, что необходимо подготовить, - это полный список всех новых пользователей и почтовых ящиков в файле CSV (значения, разделенные запятыми). Самый простой способ сделать это - использовать Microsoft Excel, но даже обычный Блокнот может создать такой файл. В приведенном ниже примере пользователи были определены в соответствии со следующими критериями:
Псевдоним, имя, UPN
Здесь также можно добавить дополнительные значения - практически для каждого поля, доступного в Active Directory. Подробное объяснение этого можно найти в конце этой статьи. Пример списка пользователей CSV выглядит так:

Псевдоним, имя, UPN
Пользователь_1, Пользователь 1, пользователь1 @ домен
Пользователь_2, Пользователь 2, пользователь2 @ домен
Пользователь_3, Пользователь 3, user3 @ домен

Заголовок списка очень важен - его нельзя пропустить. Когда список будет готов, его необходимо сохранить как файл CSV с относительно простым именем - он будет использоваться позже в сценарии, извлекающем из него данные. В этом примере он назывался CreateMailboxes.csv.

2. Назначение пароля.
Следующим шагом будет создание пароля для всех новых пользователей. Назначение нового пароля для каждого пользователя вручную будет большой тратой времени - лучше делать это автоматически, используя Exchange Management Shell. Этого можно добиться с помощью следующего сценария:

$ Password = Read-Host «Введите пароль» –AsSecureString

Отобразится уведомление с запросом пароля. Теперь мы можем ввести желаемую фразу - она станет паролем для всех новых пользователей из списка CSV. Его всегда можно изменить позже в соответствии с индивидуальными потребностями.

3. Импорт файла CSV и создание почтовых ящиков.
Последний шаг включает в себя импорт файла CSV, который мы подготовили ранее, и создание учетных записей пользователей с поддержкой почтовых ящиков. Для этого нам нужно выполнить следующую команду в командной консоли Exchange:
Код:
Import-CSV CreateMailboxes.csv | ForEach {New-Mailbox -Alias $_.alias -Name $_.name -userPrincipalName $_.UPN -Database “Mailbox Database” -OrganizationalUnit Users -Password $Password}

Представленный выше сценарий может быть изменен в соответствии с конкретными потребностями. Командная консоль Exchange интерпретирует выбранные части этой команды следующим образом:

Import-CSV CreateMailboxes.csv - извлекает данные из файла CSV, который мы подготовили ранее. Если файл был сохранен в месте, отличном от того, в котором запущена оболочка Exchange Management Shell, в сценарий также необходимо включить полный путь к CSV-файлу, например «C: \ My Documents \ CreateMailboxes.csv» (кавычки обязательны).

ForEach - извлекает данные из каждой отдельной строки файла CSV, используя первую в качестве заголовка. Все имена полей рассматриваются как имена полей Active Directory. В команду можно легко добавить дополнительные значения - например, когда мы добавляем строку Company $ _. company, это заставляет скрипт искать в CSV-файле столбец с именем Company и извлекать из него все данные для каждой строки нашего списка пользователей.
New-Mailbox - этот элемент напрямую отвечает за создание новых почтовых ящиков. Он поддерживает целый ряд параметров, которые могут быть определены для каждого пользователя - полный список всех доступных значений можно найти на веб-сайте Microsoft Technet: Синтаксис командлета New-Mailbox. Необходимые значения могут быть добавлены в файл CSV, и сценарий должен включать дополнительную командную строку, соответствующую им.
OrganizationalUnit - это значение определяет организационную единицу Active Directory, в которую будут добавлены все новые пользователи. В примере скрипта все пользователи были включены в основную группу «Пользователи». Чтобы разделить пользователей между несколькими группами AD, необходимо будет создать дополнительный столбец в списке CSV (называемый, например, «OU»), а затем завершить сценарий командой, которая будет извлекать данные из этого самого столбца для каждого отдельного пользователя. : -org $ _. OU.
Пароль - назначает каждому пользователю пароль, полученный из созданного ранее значения $ Password.
 
  • Like
Реакции: Nick
Что делать, если вы хотите массово создать почтовые ящики для существующих пользователей?

1. Сначала давайте получим список пользователей в OU (в нашем примере мы выведем только десять пользователей).

Get-ADUser -ResultSetSize $Null -Filter * -SearchBase "OU=IT,OU=Users,OU=Company,DC=exoip,DC=local" | Select-Object -ExpandProperty Name

2. Появится список юзеров

3. После этого экспортируйте пользователей AD из указанного OU в текстовый файл.

Get-ADUser -ResultSetSize $Null -filter * -SearchBase "OU=IT,OU=Users,OU=Company,DC=exoip,DC=local" | Select-Object -ExpandProperty Name | Out-File "C:\export_users.txt" -Encoding UTF8

Отредактируйте список (если нужно), удалив или добавив дополнительных пользователей. Теперь он содержит семь пользователей. Сохраните текстовый файл как import_users на диске C.

4. Теперь давайте массово создадим почтовые ящики для пользователей из текстового файла.

Get-Content "C:\import_users.txt" | Enable-Mailbox
 
  • Like
Реакции: UEF
Назад
Верх