Как найти новые учетные записи Active Directory, созданные за последние 90 дней?

13

Как найти новые учетные записи Active Directory, которые были созданы за последние 90 дней?

Кто-нибудь знает, кому это делать? Я не могу понять это.

Заранее спасибо.

обкрадывать
источник

Ответы:

17

Для потомков dsquery предназначен для такого поиска. В AD есть поле «whenCreated», которое облегчает поиск по вашему выбору.

dsquery * -filter "(whenCreated> = 20101022083730.0Z)"

В качестве примера. Вы можете программно создать временную строку на основе 90 дней.

sysadmin1138
источник
8
+1 можно использовать "(&(objectClass=user)(whenCreated>=20101022083730.0Z))"для фильтрации компьютеров и других объектов.
Jscott
Это очень медленно для активного каталога с огромным количеством учетных записей. Похоже, сделать линейный проход через данные.
Николас Ди Пьяцца
8

Попробуйте следующее, чтобы вытащить пользователей, созданных за последние 30 дней.

Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}
user227969
источник
4
Хотя этот ответ технически работает, он не очень эффективен, особенно в больших средах AD с тысячами пользователей. По сути, вы запрашиваете AD для всех пользователей, а затем в памяти на своем локальном компьютере отфильтровываете тех, которые соответствуют критериям «где». Вместо этого вам следует использовать аргумент Filter (или LDAPFilter), чтобы отфильтровать результаты, прежде чем они вернутся на ваш компьютер и вообще избежать канала Where.
Райан Болджер
5

Альтернатива версии Powershell, показанной выше, гораздо более эффективна, поскольку она не загружает всех пользователей в память перед их фильтрацией (необходимо выполнить фильтрацию непосредственно в командлете Get-ADUser и не использовать Where-Object):

$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}
Матье
источник
3

Использование PowerShell и инструментов Quest ActiveRoles для AD (см. Здесь - http://www.quest.com/powershell/activeroles-server.aspx ),

Get-QADUser -CreatedAfter (Get-Date).AddDays(-90)

будет выводить данные на консоль или куда бы вы ни перенаправляли всех пользователей, созданных за последние 90 дней.

Кристофер
источник
0

Вот пример с другого сайта, когда кто-то извлекает все учетные записи AD, отсортированные по дате создания:

http://www.experts-exchange.com/Security/Operating_Systems_Security/Windows/Q_21117191.html

Вы можете получить дату создания для каждой учетной записи из Active Directory. Каждый объект AD имеет атрибуты WhenCreated и WhenChanged. Вы можете сбросить эти атрибуты в плоский файл, используя утилиту LDIFDE, или вы можете сбросить их в файл с разделителями-запятыми, используя CSVDE (обе утилиты поставляются с Windows 2000).

Вот синтаксис для выгрузки двух атрибутов для пользовательских объектов в подразделении с именем Phoenix в домене с именем Company.com на консоль для просмотра (вся запись должна быть напечатана в виде одной строки):

ldifde -d ou = phoenix, dc = company, dc = com -l при создании, при изменении -p на один уровень -r "(ObjectCategory = user)" -f con

Если вы хотите сохранить дамп в файл, измените параметр -f с con на имя файла.

Временная метка последнего входа в систему использует этот формат: ГГГГММДДЧЧММСС с указанием часа в формате универсального скоординированного времени. Отметка времени 20040115182937.0Z соответствует 15 января 2004 18:29:37 UCT.

USRSTAT работает медленно, и полученный отчет необходимо объединить с дампом LDIFDE. Итак, я собрал скрипт, который ищет пользовательские объекты на каждом контроллере домена, а затем перечисляет время локального входа и время создания. Временная метка входа пользователя требует преобразования из длинного целого числа. Я позаимствовал код конверсии от Ричарда Л. Мюллера (www.rlmueller.net/Programs). Полный сценарий Ричарда также берет местный часовой пояс из реестра и преобразует время из UCT в местное время. щегольской

PMGoldstein
источник
0

На самом деле все эти ответы не будут работать для огромных производственных сред AD.

Ответ заключается в использовании DirSync: https://support.microsoft.com/en-us/help/891995/how-to-poll-for-object-attribute-changes-in-active-directory-on-window

Вот Java-реализация этого: https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/experimental/ActiveDirectoryDirSyncControl.html

В основном вы постоянно запрашиваете AD изменения на основе добавочного токена.

Николас ДиПьяцца
источник