Microsoftが提供するSysinternalsの「Process Explorer」を使うと、ジョブオブジェクトを調べることができる。Optionメニューの「Configure Color」でJobsのチェックボックスをオンにする。ジョブでグループ化されているプロセスに指定した色がつく
コンピューターでは、プログラムを実行するとメモリに読み込まれて「プロセス」になる。プロセスからはさまざまな情報が得られる。今回は、プロセスから情報を取得する方法について解説する。その前に、プロセスや関連の用語が混乱しているので、1回整理しておこう。
そもそもWindowsにおける「プロセス」とは
「プログラム」とは命令の連なりであり、これを記録したものが実行ファイルだ。ほとんどのプログラムは、実行ファイルという形を持つが、プログラムがプログラムを作って、実行ファイルという形を経ずに実行させることもできる。しかし、セキュリティの観点上、こうした手法には制限がかかる。悪意のある多くのプログラムが実際そうするからだ。そのため、通常はプログラムとは実行ファイルに記録されているものと考えていい。
プロセスは、プログラムのインスタンス(実体)とも呼ばれることがある。実行ファイルに記録されているものはプログラムの定義であり、実行することで実体となるという考え方だ。あえてたとえるなら、プログラムとプロセスの関係は楽譜と演奏の関係である。
Windowsは、実行ファイルから読み込まれたコードやデータなどを、一定の方法でメモリ上に配置する。このメモリ領域を実行イメージと呼ぶ。プロセスには、実行時間やファイルへのアクセス、接続しているネットワークポートといった「資源」(リソース)がプロセスに割り当てられる。Windowsでプロセスは、このようなリソースの割り当て、管理単位である。
プロセスは、1つ以上のスレッドから構成される。スレッドとは、実行スケジューリングの管理単位だ。最初に起動されるのがメインスレッドで、この中でさらにスレッドを作り出すことができる。
そのほかの用語として「ジョブ」と「タスク」がある。一般的な定義もあるが、Windowsではプロセスをグループとして管理するものがジョブ(正確にはジョブオブジェクト)である。たとえば、Google Chromeは多数のChrome.exeプロセスを作るが、これらはジョブオブジェクトでグループ化されている。ジョブに対しては、起動や停止といった操作をし、ジョブに属するプロセスをまとめて制御できる。
Windowsでは、「タスク」は、ほぼプロセスの同義語として使われる。たとえば、タスクマネージャーやタスクリスト(tasklist.exe)といったプログラムは、プロセスに関する情報を扱うものだ。ただし、タスクスケジューラーは、プロセスではなく、プログラムの起動を管理している。
プログラムよりもプロセスからの情報を得るほうが簡単
Windowsを含む多くのOSは、プロセスから情報を得るためのAPIが用意されている。このため、プロセスからプログラムに関する情報を得ることが可能になる。
もちろん、プログラム自体からも情報を得られるが、そのためにはプログラム(の実行ファイルなど)を解析して、挙動を推測しなければならない。これは、かなり面倒で高度な作業だ。しかし、プログラムを実行してプロセスから情報を得ることは簡単にできる。
たとえば、アプリケーションのウィンドウに表示されるタイトルはプロセスから簡単な方法で確認できる。しかし、プログラムから得るためには、プログラムコードを追いかけて、タイトルに表示される文字列を作る処理を突き止める必要がある。
プロセスには、ユーザーが直接起動したプログラムだけでなく、Windowsが起動したプログラムのプロセスや、アプリケーションが起動したプロセスもある。適切な権限さえあれば、こうしたプロセスからさまざまな情報を得られる。
たとえば、新旧の複数バージョンがインストールされているプログラムでも、プロセスから情報を得ることで、どちらが起動しているのかを判定可能だ。
タスクマネージャーやリソースマネージャーは、プロセスの情報を表示することができる。またWindowsには、tasklistのようなプロセスを列挙し情報を表示するプログラムもある。ただし、これらは、プロセスが持つ情報の一部しか出力することができない。
PowerShellのGet-ProcessコマンドやMicrosoftが提供するSysinternalsの「Process Explorer」(https://learn.microsoft.com/ja-jp/sysinternals/downloads/process-explorer、要インストール)は、プロセスからより詳細な情報を得ることができる(記事冒頭画面)。また、Windowsの管理機構であるWMI/CIMを使っても、同様に可能だ。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ











