Как найти новые учетные записи 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 для 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).
Вот синтаксис для выгрузки двух атрибутов для пользовательских объектов в подразделении с именем 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 в местное время. щегольской
На самом деле все эти ответы не будут работать для огромных производственных сред 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
"(&(objectClass=user)(whenCreated>=20101022083730.0Z))"
для фильтрации компьютеров и других объектов.