При создании почтовых ящиков в Microsoft Exchange Server бывает так, что учетные записи и почтовые ящики создаются разными администраторами. Чтобы не обмениваться информацией о вновь созданных пользователях, можно написать скрипт, который будет определять местонахождение пользователя, выбирать наиболее подходящий почтовый сервер и базу сообщений, затем создавать в ней почтовый ящик и отправлять уведомление. Но об этом в другой статье, а ниже мы посмотрим, как получить список пользователей Active Directory созданных за определенный временной промежуток.
Например, администратор сети вчера создал учетные записи и вам необходимо создать для них почтовые ящики.
Запускаем скрипт.
Import-Module ActiveDirectory $MDate = ((Get-Date).AddDays(-1)).Date Get-ADUser -Filter {whenCreated -ge $MDate} -property whencreated|sort name| ft name,samaccountname,whencreated -AutoSize
На выходе получится вот такой список:
Мы видим имя учетной записи, SamAccounName и дату создания. Эти учетные записи создавались скриптом, поэтому время создания отличается на примерно 15 секунд.
Получив такой список, можно создавать почтовые ящики используя свойство AD SamAccountName и командлет Enable-Mailbox.
Рассмотрим по порядку каждую строку.
Import-Module ActiveDirectory
Для работы с коммандлетами Active Directory необходимо подгрузить модуль ActiveDirectory. В PowerShell 3.0 этого делать не нужно, т.к. модуль подгрузится автоматически.
$MDate = ((Get-Date).AddDays(-1)).Date
В переменной $MDate сохраняется дата на один день меньше от текущей и часы скидываются на начало дня. Конструкция (Get-Date).Date — покажет дату с 0:00 часов текущего дня.
Get-ADUser -Filter {whenCreated -ge $MDate} -property whencreated| sort name| ft Name,samaccountname,whencreated -AutoSize
Используя конструкцию Get-ADUser -Filter {whenCreated -ge $MDate} мы получаем список учетных записей, у которых время создания — свойство whenCreated больше, чем утро текущего дня.
Поскольку Get-AdUser возвращает только предопределенные свойства, то мы передаем параметр
-property whencreated, чтобы это свойство появилось в объекте. Дальше идет сортировка по имени пользователя и вывод данных в табличном виде с автоматическим форматированием.
В PowerShell 3.0 загружать модуль AD не обязательно, он загрузится автоматически.