タスクマネージャーは実行中のプログラムを表示します-終了したプログラムを表示するにはどうすればよいですか?


16

タスクマネージャーが表示できない程度に停止している場合でも、コンピューターで実行されているプログラムを確認するにはどうすればよいですか?

私は自分のコンピューターを単独で使用せず、時々疑わしい。


4
プロセスが終了している場合、タスクマネージャーには表示されませんが、システムイベントログに表示される場合があります。イベントビューアーを参照してください。
モアブ

7
コンピューターを共有している人々を本当に信頼できない場合、彼ら実行していたものを見つけることはおそらく少なすぎ、遅すぎます。
コーディグレイ

1
この質問の皮肉はおいしいです。使用している共有コンピューター上で他の人が何をしているのか疑わしいと言いますが、あなたは他の人が自分のアカウントで何をしたのかを覗き見しようとしています!!
モニカとの軽さのレース

回答:


36

停止したプログラムが実行されているかどうかを調べる方法

デフォルトでは、実行されたプログラムのログはありません。

ただし、Windowsセキュリティイベントログプロセス追跡イベントを有効にすることができ(手順については以下を参照)、この情報は将来利用できるようになります。

プロセストラッキングイベントを有効にすると、次のPowershellコマンドを使用してイベントを調べることができます。

プロセス開始:

Get-EventLog Security | Where-Object {$_.EventID -eq 4688} | Format-List

プロセス停止:

Get-EventLog Security | Where-Object {$_.EventID -eq 4689} | Format-List

上記のコマンドは、イベント情報を画面にダンプします。


Windowsセキュリティログでプロセストラッキングイベントを使用する方法

Windows 2003 / XPでは、プロセス追跡監査ポリシーを有効にするだけでこれらのイベントを取得できます。

Windows 7/2008 +では、監査プロセスの作成を有効にする必要があります。オプションで、グループポリシーオブジェクトの高度な監査ポリシーの構成の下にある監査プロセス終了サブカテゴリを有効にする必要があります。

これらのイベントは、システム上の実行可能ファイルがプロセスとして開始されるたびに包括的な監査証跡を提供するため、非常に貴重です。両方のイベントにあるプロセスIDを使用して、プロセス作成イベントをプロセス終了イベントにリンクすることにより、プロセスの実行時間を決定することもできます。両方のイベントの例を以下に示します。

ここに画像の説明を入力してください

ソースWindowsセキュリティログでプロセス追跡イベントを使用する方法


監査プロセスの作成を有効にする方法

  1. gpedit.mscを実行します

  2. [Windowsの設定]> [セキュリティの設定]> [ローカルポリシー]> [監査ポリシー]を選択します

    ここに画像の説明を入力してください

  3. 「プロセス追跡の監査」を右クリックして、「プロパティ」を選択します

  4. 「成功」をチェックして「OK」をクリックします

    ここに画像の説明を入力してください


監査プロセスの追跡とは

このセキュリティ設定は、OSがプロセスの作成、プロセスの終了、ハンドルの複製、間接的なオブジェクトアクセスなどのプロセス関連のイベントを監査するかどうかを決定します。

このポリシー設定が定義されている場合、管理者は、成功のみ、失敗のみ、成功と失敗の両方を監査するか、これらのイベントをまったく監査しない(つまり、成功も失敗もしない)かを指定できます。

成功の監査が有効になっている場合、OSがこれらのプロセス関連アクティビティのいずれかを実行するたびに監査エントリが生成されます。

失敗の監査が有効になっている場合、OSがこれらのアクティビティのいずれかを実行できないたびに、監査エントリが生成されます。

デフォルト:監査なし

重要:監査ポリシーをさらに制御するには、[監査ポリシーの詳細構成]ノードの設定を使用します。高度な監査ポリシーの構成の詳細については、http://go.microsoft.com/fwlink/?LinkId = 140969を参照して ください


NirsoftのExecutedProgramListはどうですか?それを使用できますか?

ExecutedProgramListは、実行されたプログラムの完全なリストを提供しません。

たとえば、サムドライブから現在実行しているポータブルプログラム(Agent、Notepad ++、GSNotesなど)、および前回の再起動以降に実行したほとんどすべてのCygwinプログラムは表示されません。

リンクに記載されている場所に何も書き込まないプログラムはリストされません。

以前に実行されたプログラムのリストは、次のデータソースから収集されます。

  • レジストリキー: HKEY_CURRENT_USER\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
  • レジストリキー: HKEY_CURRENT_USER\Microsoft\Windows\ShellNoRoam\MUICache
  • レジストリキー: HKEY_CURRENT_USER\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted
  • レジストリキー: HKEY_CURRENT_USER\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store
  • Windows Prefetchフォルダー(C:\ Windows \ Prefetch)

ソースExecutedProgramList


参考文献


結果の情報を抽出するための気の利いたPowerShellスニペットは、この優れた答えへの素晴らしい追加でしょう。
ピーターモーテンセン

@PeterMortensenありがとう。確かにそうでしょう。残念ながら、PowerShellを作成するのに十分なパワーシェルを知りません。
DavidPostill

ハンドルの重複を監査すると、非常にスパムに聞こえます。
user253751

@PeterMortensen私はなんとか情報を提供するワンライナーを書くことができました;)
DavidPostill

@ user20574どういう意味ですか?
DavidPostill

3

Nirsoftは、小型、無料のアプリケーション、持っているExecutedProgramListを、ショーあなたのシステム上で実行されるプログラムやバッチファイルのリストという。Windows固有の制限により、アプリケーションが最後に起動した時刻を常に表示できるとは限らないことに注意してください。@ DavidPostillが述べたように、ポータブルアプリを見逃す可能性があります。

Windowsから情報を取得するため、リストをコンパイルするために実行する必要はありません。


1
ExecutedProgramList実行されるプログラムの完全なリストを提供しません。たとえば、サムドライブから現在実行しているポータブルプログラム、たとえばAgentNotepad++および前回の再起動以降に実行GSNotesしたほぼすべてのCygwinプログラムはリストされません。そのため、あまり包括的ではありません。
DavidPostill

リンクに記載されている場所に何も書き込まないプログラムはリストされません。
DavidPostill

どのように機能しますか?現在実行中のプロセスを継続的にサンプリングしますか?または、プロセスの開始および停止時にWindowsから通知されますか?
ピーターモーテンセン

@PeterMortensenそれがどのように機能するかについては私の答えの最後をご覧ください。そして、手動で更新する必要があります。
DavidPostill

1

プロセス履歴もこれを行います。これは、無料で移植可能なプロセスデータベースです。

シンプルなポータブル.zipダウンロードです。ダウンロードサイトには、ビデオでの使用方法に関するマニュアルがあります。

プロセス履歴が実行されている限り、別のGUIを介して終了したプロセスを照会できます。

XPからWindowsのすべてのバージョンで実行されます。

(私はこのオープンソースソフトウェアの著者です。)

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