Как найти учетные записи AD, созданные в определенное время?

При создании почтовых ящиков в Microsoft Exchange Server бывает так, что учетные записи и почтовые ящики создаются разными администраторами. Чтобы не обмениваться информацией о вновь созданных пользователях, можно написать скрипт, который будет определять местонахождение пользователя, выбирать наиболее подходящий почтовый сервер и базу сообщений, затем создавать в ней почтовый ящик и отправлять уведомление. Но об этом в другой статье, а ниже мы посмотрим, как получить список пользователей Active Directory созданных за определенный временной промежуток.

Например, администратор сети вчера создал учетные записи и вам необходимо создать для них почтовые ящики.
Запускаем скрипт.

[code language=»PowerShell»]

Import-Module ActiveDirectory

$MDate = ((Get-Date).AddDays(-1)).Date

Get-ADUser -Filter {whenCreated -ge $MDate} -property whencreated|sort name|
ft name,samaccountname,whencreated -AutoSize
[/code]

На выходе получится вот такой список:

 

Список учетных записей, созданных сегодня

Мы видим имя учетной записи, SamAccounName и дату создания. Эти учетные записи создавались скриптом, поэтому время создания отличается на примерно 15 секунд.

Получив такой список, можно создавать почтовые ящики используя свойство AD  SamAccountName и командлет Enable-Mailbox.

Рассмотрим по порядку каждую строку.

[code language=»PowerShell»]
Import-Module ActiveDirectory
[/code]

Для работы с коммандлетами Active Directory необходимо подгрузить модуль ActiveDirectory. В PowerShell 3.0 этого делать не нужно, т.к. модуль подгрузится автоматически.

[code language=»PowerShell»]
$MDate = ((Get-Date).AddDays(-1)).Date
[/code]

В переменной $MDate сохраняется дата на один день меньше от текущей и часы скидываются на начало дня. Конструкция (Get-Date).Date — покажет дату с 0:00 часов  текущего дня.

[code language=»PowerShell»]
Get-ADUser -Filter {whenCreated -ge $MDate} -property whencreated|
sort name| ft Name,samaccountname,whencreated -AutoSize
[/code]

Используя конструкцию Get-ADUser -Filter {whenCreated -ge $MDate} мы получаем список учетных записей, у которых время создания — свойство whenCreated больше, чем утро текущего дня.

Поскольку Get-AdUser возвращает только предопределенные свойства, то мы передаем параметр
-property whencreated, чтобы это свойство появилось в объекте. Дальше идет сортировка по имени пользователя и вывод данных в табличном виде с автоматическим форматированием.

В PowerShell 3.0 загружать модуль AD не обязательно, он загрузится автоматически.

 

Related Posts

This Post Has 6 Comments

      1. Павел, спасибо Вам большое. Есть еще один вопрос. у меня в АД учетные записи заведены в кириллице мне нужно дописывать -encoding unicode или как правильно будет?
        выгрузил данные в АД учеток заведенных в 2015 году при помощи Вашей команды в текстовой документ. ФИО русские он не видит.

          1. Павел разобрался
            $MDate = ((Get-Date).AddDays(-300)).Date
            Get-ADUser -Filter {whenCreated -ge $MDate} -property whencreated|sort name|ft name,samaccountname,whencreated –AutoSize |out-file “C:Tempusers.txt”

Добавить комментарий