Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}

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

$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}

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

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

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

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

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

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

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

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

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

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

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

На самом деле все эти ответы не будут работать для огромных производственных сред 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 изменения на основе инкрементного токена.

Вы можете сделать это довольно легко с помощью dsquery

Вот противоположная, но связанная с этим проблема

Документы dsquery