回答:
後世のために、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とAD用のQuest ActiveRolesツールを使用する(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に付属しています)。
Company.comというドメインのPhoenixというOUのユーザーオブジェクトの2つの属性を表示するためにコンソールにダンプする構文は次のとおりです(エントリ全体を1行で入力する必要があります)。
ldifde -d ou = phoenix、dc = company、dc = com -l作成時、変更時-p onelevel -r "(ObjectCategory = user)" -f con
ダンプをファイルに保存する場合は、-fスイッチをconからファイル名に変更します。
最後のログオンタイムスタンプは、YYYYMMDDHHMMSSという形式を使用します。時間は世界協定時刻で表示されます。20040115182937.0Zのタイムスタンプは、2004年1月15日18:29:37 UCTに対応します。
USRSTATは低速であり、取得したレポートはLDIFDEダンプとマージする必要があります。そこで、各ドメインコントローラーでユーザーオブジェクトを検索し、ローカルログオン時間と作成時間を一覧表示するスクリプトをまとめました。ユーザーログオンタイムスタンプには、長整数からの変換が必要です。私は、リチャードL.ミューラー(www.rlmueller.net/Programs)からの変換コードを借りました。また、Richardの完全なスクリプトは、レジストリからローカルタイムゾーンを取得し、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に変更を継続的に依頼します。
"(&(objectClass=user)(whenCreated>=20101022083730.0Z))"
コンピューターやその他のオブジェクトを除外するために使用できます。