アクティブディレクトリユーザーの最終ログオン時間を見つける方法(ADUCを使用)。アクティブディレクトリは、多くのWindowsベースのネットワークの中心的なコンポーネントであり、システム管理者が管理するユーザー、グループ、およびコンピューターのデータベースとして機能します。システム管理者の重要なタスクの1つは、アクティブディレクトリ内の非アクティブなユーザーアカウントを特定し、それらを削除してセキュリティを向上させ、ディレクトリ内の混乱を減らすことです。これを達成するために、管理者はアクティブディレクトリ内のユーザーの最終ログオン時間を見つける必要があります。
この目的を達成するためのいくつかの方法が存在します。アクティブディレクトリユーザーズアンドコンピューターズコンソール、LDAPクエリ、そしてPowerShellコマンドなどがそれにあたります。このトピックでは、これらの方法をより詳細に調べ、システム管理者がアクティブディレクトリのユーザーの最終ログオン時間を簡単に見つける方法を示します。
記事「アクティブディレクトリユーザーの最終ログオン時間を見つける方法(ADUCを使用)」に進むことにしましょう。
アクティブディレクトリユーザーの最終ログオン時間を見つける方法(ADUCを使用)
注意。 上記のスクリーンショットのlastLogonとlastLogonTimestampの特性は比較的に似ています。では、それらを区別するものは何でしょうか?
ログオンタイムスタンプ属性
- ドメインにログインするとき、ユーザーのlastLogon 属性が変更されます。ただし、これは、他のドメインコントローラーにユーザーの認証を提供したドメインコントローラーのみで変更されます。その結果、複数のドメインコントローラーがさまざまなActive Directoryサイトとサブネットに分散している場合は、各ドメインコントローラーでこの属性をチェックし、取得した情報を比較する必要があります。この属性の値は、複数のDCのユーザーに対して異なるか、またはゼロになることがあります(このDCで認証されていないユーザーの場合)。
- ユーザーがドメインコントローラにサインインすると、lastLogonTimeStamp属性も変更され、他のDCにレプリケートされます。ただし、このプロパティをレプリケートするには時間がかかります(現在の値が以前の値より14日以上古い場合にのみレプリケートします)。その結果、特定のDCのこのプロパティの情報がより関連性がない可能性があります。
- msDS-LastFailedInteractiveLogonTime: 最後に失敗したログイン試行の時間を表示します。
- msDS-LastSuccessfulInteractiveLogonTime: 最後に成功したログイン試行の時間を表示します。Active Directoryスキーマのバージョンを確認して、Active Directoryスキーマの更新が必要かどうかを判断することが重要です。
これらのプロパティは、ユーザーのインタラクティブなログイン試行を追跡するために使用されますが、ADドメインコントローラー間でしばしば重複します。しかし、ユーザーのプリファレンスに関する情報は自動的に収集されません。
Active DirectoryとOffice 365のレポーティングおよび監査ツールをお試しください
無料で試してみませんか 無料。 100以上のレポートテンプレートが利用可能。 AD、Azure AD、Office 355の独自のレポートを簡単にカスタマイズできます。
グループポリシーを使用してログオンプロパティを有効にする
これらの機能を利用可能にするには:
- 「ドメインコントローラーのクライアントコンピューターに以前のログオンに関する情報を提供する」という設定を有効にするグループポリシーオブジェクト(GPO)を設定し、コンピューター構成 > 管理テンプレート > システム > KDCに配置します。
- このパラメータでGPOを作成します。
- そのGPOをドメインコントローラーコンテナに割り当てます。
LDAPクエリを使用して、Active Directoryグラフィカルコンソールでしばらくドメインにログインしていないユーザーのリストを生成するには、以下の手順に従ってください。
- 望ましい日付をToFileTime形式に変換します。たとえば、90日以上ログインしていないユーザーを見つけたい場合、PowerShellコマンドを使用して日付の値を取得します:
(Get-Date).AddDays(-90).ToFileTime()
このコードスニペットは、指定された日付に基づいてエポック時間のような132988354159396418の値を提供します。
2. LDAPクエリにFileTimeDate値を挿入します:
console.log( 'Code is Poetry' );
3. AD ユーザーとコンピューターコンソールを開き、保存されたクエリノードを右クリックし、新規作成をクリックしてから、クエリを選択します。
4. クエリに名前を付け、クエリの定義ボタンをクリックします。
5. ドロップダウンリストからカスタム検索を選択し、詳細設定タブに切り替えます。
6. LDAP クエリを「LDAP クエリの入力」フィールドにコピーします。
7. OKをクリックしてクエリを保存し、さらにOKをクリックして確定します。
8. 保存されたクエリからクエリを選択し、F5キーを押してオブジェクトリストを更新します。ADUC コンソールには、90 日以上前に最後にログインしたドメインのユーザーのフラットリストが表示されます。
9. AD コンソールから直接、非アクティブなドメインユーザーアカウントを削除または無効にします。
CMD を使用して最終ログオン時間を検索する
net user administrator /domain | findstr "Last"
ローカルユーザーの最終ログイン時間を取得したい場合は、/domainパラメータを削除する必要があります:
net user User | findstr "Last"
また、dsqueryを使用して最終ログオン時間を取得することもできます。たとえば:
dsquery * domainroot -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=admin))" -attr distinguishedName lastLogon lastLogonTimestamp -limit 0
主な問題は、lastLogonTimestampおよびlastLogon属性がAD内のタイムスタンプ形式であり、通常の時間形式に変換する必要があることです。
たとえば、10週間の非アクティブユーザーを検索するために、このコマンドを使用します:
dsquery user domainroot -inactive 10
PowerShell を使用して最終ログオン時間を検索する
また、PowerShell を使用してユーザーのドメイン最後 ログオン時間を取得します。 このために、PowerShell Active Directory モジュールと PowerShell コマンドを使用する必要があります。 まず、PowerShell を開いて、 Import-Module コマンドレットを実行して、Active Directory モジュールをインポートします。
Import-Module ActiveDirectory
また読むアクティブ ディレクトリ ユーザー ログオン ログオフ レポート ツール(高度なフィルター)特定の日数内で非アクティブなユーザーを見つける
Get-ADUser -Identity username -Properties LastLogon | Select-Object -Property Name, LastLogon
特定の日数(たとえば90日)ログインしていないアカウントを見つけるには、ユーザーアカウントをLastLogonTimestamp属性に基づいてフィルタリングするPowerShellコマンドを使用します。以下は、コマンドの例です:
Get-ADUser -Filter {Name -eq "username"} -Properties * |
Select-Object Name, @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}}
このコマンドは、90日以上非アクティブであり、ユーザーアカウントのみを選択します。次に、それらのユーザーアカウントの名前とLastLogonTimestamp属性値を表示します。これは、ユーザーがドメインにログインした最後の時刻を表します。TimeSpanパラメーターを調整して、異なる日数の非アクティブなアカウントを検索します。たとえば、60日間非アクティブなアカウントを検索したい場合、TimeSpanを60.00:00:00.に設定します。ADは、ユーザーがシステムにログインまたはログオフした後に
特定の日数内の非アクティブなユーザーを見つける
特定の日数、たとえば90日間ログインしていないアカウントを見つけるために、PowerShellコマンドを使用して、LastLogonTimestamp属性をフィルタリングしてユーザーアカウントをフィルタリングします。これはコマンドの例です:
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 | where {$_.ObjectClass -eq 'user'} | Select-Object Name, LastLogonTimestamp
このコマンドは、90日以上アクティブでないアカウントを検索し、ユーザーアカウントのみを選択します。次に、それらのユーザーアカウントの名前と、ドメインにログインした最後の時間を表すLastLogonTimestamp属性値を表示します。
次に、TimeSpanパラメータを調整して、非アクティブ状態であるアカウントを検索します。たとえば、60日間アクティブでないアカウントを検索したい場合は、TimeSpanを60.00:00:00に設定します。
ユーザーがシステムにログインまたはログアウトすると、ADはLastLogonTimestamp属性を更新しますが、値は部分的に正確である可能性があります。また、この属性はデフォルトでドメインコントローラ間で9~14日ごとにレプリケートされるため、一部のユーザーアカウントのみ最新の情報を取得できる場合があります。
CSVファイルへのエクスポート
非アクティブなユーザーアカウントのリストをCSVファイルにエクスポートするには、前述のPowerShellコマンドを変更して、Export-CSVコマンドレットを含めます。これがコマンドの例です。
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 |
where {$_.ObjectClass -eq 'user'} |
Select-Object Name, LastLogonTimestamp |
Export-CSV C:\InactiveUsers.csv -NoTypeInformation
このコマンドは、90日以上非アクティブなアカウントを検索し、ユーザーアカウントのみを選択します。次に、それらのユーザーアカウントのNameプロパティとLastLogonTimestampプロパティを決定し、CSVファイルにエクスポートします。「C:\InactiveUsers.csv」に配置されます。
「-NoTypeInformation」パラメーターは、CSVファイルにそれぞれのオブジェクトの.NETタイプ情報を含めないように指定されており、ファイルを読みやすくしています。このコマンドを実行した後、Excelまたは他のスプレッドシートアプリケーションでCSVファイルを開いて、非アクティブユーザーアカウントとその最終ログオンのタイムスタンプの一覧を表示します。
記事「Active Directory Users Last Logon Timeを見つける方法(ADUCを使用)」をお読みいただきありがとうございます。これで結論とします。
Active Directory Users Last Logon Timeを見つける方法(ADUCを使用)の結論
結論として、Active Directory内のユーザーの最終ログオン時刻を見つけることは、システム管理者にとって重要なタスクです。これにより、無効なユーザーアカウントを特定して無効化または削除し、セキュリティを向上させ、ディレクトリ内の混乱を減らすことができます。これは、Active Directoryユーザーおよびコンピュータコンソール、LDAPクエリ、およびPowerShell コマンドを使用して達成します。
適切なツールとテクニックを使用することで、システム管理者は迅速かつ簡単にActive Directory内のユーザーの最終ログオン時刻を見つけ、ディレクトリを効果的に管理するための適切な対策を講じることができます。
Source:
https://infrasos.com/how-to-find-active-directory-users-last-logon-time-using-aduc/