過去90日間に作成された新しいActive Directoryアカウントを見つけるにはどうすればよいですか?


13

過去90日間に作成された新しいActive Directoryアカウントを見つけるにはどうすればよいですか?

誰がこれを行うかを知っていますか?わかりません。

前もって感謝します。

回答:


17

後世のために、dsqueryはこの種の検索用に設計されています。ADは「whenCreated」フィールドを保持しているため、選択したツールで簡単に検索できます。

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

例として。90日間の現在に基づいて、タイムストリングをプログラムで作成できます。


8
+1は、"(&(objectClass=user)(whenCreated>=20101022083730.0Z))"コンピューターやその他のオブジェクトを除外するために使用できます。
jscott

これは、大量のアカウントを持つアクティブディレクトリの場合、非常に遅くなります。データを直線的に通過するようです。
ニコラスディピアッザ

8

以下を試して、過去30日間に作成されたユーザーを取得してください。

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

4
この回答は技術的には機能しますが、特に何千人ものユーザーがいる大規模なAD環境ではあまり効率的ではありません。基本的には、すべてのユーザーのADにクエリを実行し、ローカルマシンのメモリで「where」条件を満たすユーザーをフィルタリングします。代わりに、実際にFilter引数(またはLDAPFilter)を使用して、結果がマシンに戻される前に結果をフィルタリングし、Whereパイプを完全に回避する必要があります。
ライアンボルガー

5

上記のPowershellバージョンの代わりに、すべてのユーザーをフィルター処理する前にメモリに読み込まないため、はるかに効率的です(Get-ADUserコマンドレットでフィルターを直接実行し、Where-Objectを使用しないでください)。

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


0

作成日でソートされたすべての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からローカルタイムに時間を変換します。気の利いた


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に変更を継続的に依頼します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.