Для массового включения почтовых ящиков для уже существующих в домене пользователей приготовим *.CSV файл с разделителем – запятая. В первой строке файла будут описаны заголовки значений, в последующих строках – сами значения.
В нашем примере в качестве используемых значений будут имя пользователя в домене в формате DOMAINUser и алиас для создаваемого почтового ящика к этому имени пользователя. В обычном текстовом редакторе файл будет выглядеть так:
DomainUser,mailAlias
MYDOMivanov-ip,I.Ivanov
MYDOMpetrov-sa,S.Petrov
MYDOMsidorov-dg,D.Sidorov
Чтобы убедиться в том, что PowerShell действительно может разобрать наш файл по значениям выполним команду:
Import-CSV C:Users.csv
Результат вывода должен быть таким:
Непосредственно для импорта содержимого файла и включения на основе этих данных почтовых ящиков выполним:
$DBId = 'MailboxServerStorageGroupDataBase'
Import-CSV C:Users.csv | ForEach-Object { Enable-Mailbox -Identity $_.DomainUser -Alias $_.mailAlias –Database $DBId } | Get-Mailbox | Select Alias,WindowsEmailAddress
Не совсем. В моём случае учетки были созданы ранее в разные периоды времени (этап входа в домен новой инфраструктурной единицы с кучей своих подразделений и соотв. подюнитов) и создание ящиков делается разными порциями. Тут без файла, конкретно описывающего перечень учеток, не обойтись.
А так если придерживаться вашего сценария можно было ещё и добавить фильтр обработки только не mail-enabled пользователей, типа такого:
Алексей.
Насколько я понимаю задача изначально - включить ящики для вновь созданных пользователей?
Может вот так?
Get-User -resultsize unlimited | where {$_.WhenCreated -gt (get-date).AddDays(-1)} | Enable-Mailbox ....
Это позволит избежать шага по созданию файла.
В идеале еще пару строк и будет выводиться запрос на создание ящика.
согласен.
У меня функция создания пока не передали ее в сервис деск работала примерно так.
в зависимости от того что передаю скрипту (строковый параметр) - запрос шаблона для пользователя "user*" или имя файла.
соответственно по каждому действию запрос.