PIDがまだある場合、終了したWindowsプロセスを識別する方法


14

背景:私の仕事の途中で、「Microsoft Mouse and Keyboard Center」をインストールするためのライセンス契約が突然現れました。どのプロセスがセットアップを起動したかを理解したいのですが、Process Explorerを使用して、それがなくなったのを見ました。PIDしか見つけることができませんでした(スクリーンショットを参照)。

質問:

Process Explorerを使用している場合、おそらくプロセスの親プロセスが存在せず、そのPIDしか表示されない状況をご存じでしょう。

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

実行中のプロセスへのPIDの関連付けを含むWindowsログがあるので、特定のPIDで実行されているプロセスを確認できますか?

できれば、これを予想していなかったシナリオに興味があるので、プロセスモニターを使用してシステムのイベントをキャプチャしませんでした。

回答:


11

実行中のプロセスへのPIDの関連付けを含むWindowsログがいくつかありますか

デフォルトでは、そのようなログはありません。ただし、Windowsセキュリティイベントログでプロセストラッキングイベントを有効にすることができます。

ノート:


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

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

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

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

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

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


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

  1. gpedit.mscを実行します

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

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

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

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

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


監査プロセスの追跡とは

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

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

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

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

デフォルト:監査なし

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


デイブ、多分あなたは「西で最も速い銃」アプローチを使うことができた。長くて精巧な答えを書いている間に、私は他の答えのステップを実行し(後で追加したのと同じ)、それを受け入れようとしていました。だから今、私は受け入れるために答えるジレンマを持っています... :)
ミロクスラフ

1
私はむしろ最初の答えよりも最良の答えを持っているでしょう;)彼らが同じものであれば、それはボーナスです。回答を準備していることをお知らせしました(クリーンアップされたコメントで)。そして、私は自分の携帯電話を介して遅いテザーインターネット接続を使用しています:/
DavidPostill

そうそう、あなたがやった。OTOHは、「ローカルポリシーで監査ログを有効にすることができます」と書いて、教育的価値のある回答を投稿し続けてください。時々、小さな手がかりでも素晴らしい答えを60分待つよりも私(OP)を助けることができます:)つまり、ローカルポリシーがどこにあるか知っているので、ちょっとした手がかりが必要でした。
ミロクスラフ

@DavidPostill:私は、彼らがかなり長く得ることができます想像するので...、あなたはこれらのログを洗浄する頻度は言うことができればいいだろう(あるいは、それらは手動でクリーンアップする必要がありますどのくらいの頻度)
user541686

1
@Mehrdadイベントログは、必要に応じて、コマンドラインからを使用して削除できwevtutilます。これは、イベントビューアーGUIを使用するよりも簡単です。
DavidPostill

3

確認する唯一の方法は、プロセスの作成を追跡するために監査を有効にする必要があります。

「ローカルセキュリティポリシー」プログラムsecpol.mscから(検索に問題がある場合は実行画面から入力します)「セキュリティ設定->ローカルポリシー->監査ポリシー」に進み、「成功」の「監査プロセス追跡」を有効にします。

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

イベントビューアーに移動し、「セキュリティ」イベントログを確認すると、プロセスが開始または終了するたびに「成功の監査」エントリが表示されます。

プロセスが終了しました。

件名:
    セキュリティID:SYSTEM
    アカウント名:SCOTT-PC $
    アカウントドメイン:WORKGROUP
    ログオンID:0x3E7

プロセス情報:
    プロセスID:0x1338
    プロセス名:C:\ Windows \ System32 \ consent.exe
    終了ステータス:0x0

探しているプロセスIDを10進数から16進数に変換する必要があります(3336は0xD08になります)。変換する最も簡単な方法は、Windows電卓を開いて、「プログラマ」モードに移動し、「dec」モードで数値を入力して、「hex」モードをクリックすることです。表示される数字は、16進数に変換されます。


ええ、これは私が期待していたような答えです。簡単に言うと、ロギングを有効にして、結果を確認できるようになります。
ミロクスラフ

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