サーバーにログオンした Windows ユーザーのカウント

サーバーにログオンした Windows ユーザーのカウント

過去 30 日間または 2 つの日付の間に Windows サーバー (具体的には 2008 R2) にログオンしたユーザーのリストをプログラムで収集する方法はありますか? アクティブ ディレクトリ サーバーが 2 つあり、すべてのユーザーは同じドメインのメンバーです。

私の最終目標は、SPLA の理由から、各サーバーの一意のユーザーのリストを自動的に取得することです。

答え1

これはプログラム経由ではなく手動で行いますが、イベント ビューアーでフィルターを作成して、ログイン イベントだけを表示することができます。フォルダーを右クリックしてオプションCustom Viewsを選択しますCreate Custom View。残念ながら、このフィルターでは XML を編集する必要があります。フィルターの XML は次のようになります。

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
      *[System[(EventID=4624)]] 
      and 
      *[EventData[Data[@Name='LogonType'] and (Data='2' or Data='10' or Data='11')]]
    </Select>
    <Suppress Path="Security"> 
       *[EventData[Data[@Name='TargetDomainName'] and  (Data = 'Window Manager')]]
    </Suppress> 
  </Query>
</QueryList>

これを編集して、ログオン タイプ 7 (ロックされたセッションのロック解除) も含めることもできます。ログオン タイプ コードの詳細については、次のリンクを参照してください。

http://www.windowsecurity.com/articles-tutorials/misc_network_security/ログオンタイプ.html

これは日付範囲でフィルタリングするのではなく、ログインのみでフィルタリングすることに注意してください。ただし、その部分を絞り込むと、イベント ビューアーで日付範囲を手動で参照するのは簡単です。

残念ながら、ファイアウォールをオフにしても、「別のコンピューターに接続」オプションを使用した場合、このフィルターは機能しませんでした。

答え2

簡単な方法はありません。セキュリティ ログを調べることが最初に思い浮かびます。イベント ID 4624 を探します。ログオンの種類に注意してください (対話型ログオンをカウントする場合は 2、10、11)。

セキュリティ ログ エントリが生成される速度とログのサイズによっては、30 日サイクルの前にログが上書きされる場合があります。

中央の場所にカウントを実行するログイン スクリプトを強制する方が適切です。

関連情報