- Sysinternals は、標準ツールよりもはるかに詳細に Windows のプロセス、ファイル、レジストリ、ネットワークを分析するための高度なユーティリティを提供します。
- Process Explorer と Process Monitor は、プロセス、DLL、ハンドル、イベントを詳細に把握できるため、パフォーマンス、エラー、マルウェアを調査する上で重要な役割を果たします。
- Autoruns、TcpView、Sysmon、PsTools などのツールによってエコシステムが完成し、自動起動、ネットワーク接続、ローカルまたはリモート管理の制御が可能になります。
- Sysinternals Live 経由で実行され、頻繁に更新されるため、このスイートは管理者、開発者、上級ユーザーにとって不可欠なリソースになります。

Windowsをしばらく使っていて、タスクマネージャーだけではシステムで実際に何が起こっているのかを完全に把握できないと感じているなら、Sysinternalsはまさにあなたが探していたものです。この高度なMicrosoftユーティリティスイートを使えば、どのプロセスが実行されているか、どのファイルにアクセスしているか、どのレジストリキーを変更しているか、さらにはどのネットワーク接続を開いているかまで、詳細に確認できます。
これらのツールはマイクロソフトが採用するずっと前から存在しており、多くは目立たないものの、Windowsプロセスの分析、エラーの検出、マルウェアの駆除においてまさに万能ツールと言えるでしょう。本稿では、Process Explorer、Process Monitor、そしてその他のプロセスに特化したSysinternalsユーティリティの活用方法を、分かりやすい言葉と実践的な例を交えながら詳しく解説します。
Sysinternals とは何ですか? プロセスの分析になぜ役立つのですか?
Sysinternalsは、1996年にマーク・ルシノビッチとブライス・コグスウェルによって設立されたプロジェクトで、当初はWindows NT、Windows 2000、Windows XPを対象とした、小型で高度な診断ツールを提供することを目的としています。当初のサイトはNTinternalsと呼ばれ、管理者や開発者がオペレーティングシステムの内部動作を理解できるように設計されていました。
それから10年後の2006年、マイクロソフトはこのプロジェクトを買収し、自社のウェブサイトに統合しました。それ以来、sysinternals.comはマイクロソフトの公式セクションにリダイレクトされるようになりました。それでも、その精神は変わっていません。小型で軽量、ほとんどがポータブルなユーティリティ(コピーして実行するだけで完了)であり、頻繁に更新、拡張、改良され続けています。
これらのツールは主にシステム管理者、ITプロフェッショナル、開発者向けに設計されていますが、上級ユーザーであれば誰でも大いに活用できます。起動時に実行されるものから、CPUを消費するプロセス、ロードされるDLL、使用されるネットワークポートまで、Windowsの非常に具体的な側面を理解、設定、管理することができます。
この完全版スイートには70種類以上のユーティリティが含まれており、Microsoft StoreでもSysinternals Suiteとして入手可能です。ストアからインストールしても、単一の「アプリ」アイコンは作成されません。代わりに、実行ファイルとドキュメントのコレクションが提供されます。各ツールは名前で検索するか、保存場所に移動することで起動できます。
Sysinternals Live: インストールせずにツールを実行する
このユーティリティ群の重要な利点の1つは、Sysinternals Liveというサービスです。このサービスを利用すれば、手動でファイルをダウンロードしてディスクに解凍することなく、ネットワークから直接ツールを実行できます。
ファイル エクスプローラーから使用するには、Sysinternals Live ドメインを使用してツールのパスを入力するだけです。例: live.sysinternals.com/<toolname> またはUNCルート \\live.sysinternals.com\tools\<toolname>この方法では、Windows は Microsoft 共有から実行可能ファイルを直接開きます。
コンソールを使用する場合は、同様のパスで任意のユーティリティを起動できます。 \\live.sysinternals.com\tools\<toolname>これにより、ローカル バージョンを管理する必要がなくなり、各ツールの最新バージョンを常に使用できるようになります。
利用可能なすべてのツールを確認するには、ブラウザまたはWindowsエクスプローラーでhttps://live.sysinternals.com/を開いてください。そこには、すぐに使用できるSysinternals Liveツールの完全なディレクトリが表示されます。
プロセスエクスプローラー:「スーパーチャージされたタスクマネージャー」
Process Explorerは、 Windowsプロセスに関してSysinternalsで最もよく知られたツールと言えるでしょう。その目的は、タスクマネージャーよりもはるかに詳細に、システムで何が実行されているか、プロセスがどのように相互作用しているか、そして特定の時点でどのリソースを使用しているかを表示し、パフォーマンスを最適化することです。
Process Explorerのインターフェースは、主に2つのサブウィンドウに分かれています。上部には、常にすべてのアクティブなプロセスの一覧が表示されます。通常はツリー構造で親プロセスと子プロセスが整理され、プログラムの説明、会社名、プロセス識別子(PID)、CPU使用率、メモリ使用量などのデータも表示されます。各プロセスを所有するユーザーアカウントの名前も表示されます。
下部のウィンドウは、ハンドルモードとDLLモードの2つのモードで動作します。ハンドルモードでは、選択したプロセスが開いているハンドル(ファイル、レジストリキー、システムオブジェクトなど)が表示されます。DLLモードでは、プロセスがロードしたダイナミックリンクライブラリとメモリマップドファイルが表示されます。これは、アプリケーションがどのファイルをロックしているか、またはどの疑わしいモジュールが正当なプロセスに注入されているかを特定するために非常に重要です。
Process Explorerには、特定のファイルやDLLを開いているプロセスを特定できる強力な検索機能も搭載されています。ファイル名またはファイル名の一部を入力するだけで、関連するプロセスの一覧が瞬時に表示されます。Windowsが「使用中」という理由でファイルの削除を許可しない場合に、どのプロセスがファイルを保持しているのかを知りたい場合に非常に便利です。
もう一つの強みは、デジタル署名の検証機能です。「検証」オプションを使用すると、メモリにロードされた実行ファイルやDLLに、製造元による有効な署名が付いているかどうかを確認できます。これにより、マルウェアやサポートが終了した古いプログラムによく見られる、改ざんされたり署名されていないバイナリから、正規のプロセスを区別することができます。
このツールは、システムサービス、Windowsエクスプローラー内のプロセス、パッケージ化されたアプリケーションなど、さまざまなプロセスを色分けして視覚的に識別します。名前と色の列をざっと見るだけで、各要素がどのようなものか、最初から詳細に調べなくてもすぐに把握できます。
さらに、Process Explorerには、各プロセスの開始日時をグラフィカルに表示するタイムラインビューが用意されています。セキュリティインシデントや異常な動作の分析において、この機能は疑わしいアクティビティがいつ始まったのか、そして同じ期間内に開始された他のプロセスとどのように関連しているのかを特定するのに役立ちます。
このユーティリティは、DLLのバージョン問題、ハンドルリーク(解放されないハンドル)の追跡、そしてWindowsの内部動作やアプリケーションの実際の動作をより深く理解するのに最適です。
プロセス モニター: ファイル、ログ、プロセスのリアルタイム X 線
Process Monitor(Procmon)は、Sysinternalsエコシステムのもう一つの重要なコンポーネントです。これは、ファイルシステムのアクティビティ、Windowsレジストリのアクティビティ、実行中のプロセスやスレッドをリアルタイムで表示する高度な監視ツールです。
これは、従来のFilemonおよびRegmonユーティリティの機能を統合し、さらに凌駕するものであり、情報損失を一切伴わずに包括的なトレーサビリティを実現するために設計された数々の改良点が追加されています。中でも特筆すべき機能は、非常に柔軟で非破壊的なフィルタリングシステムです。既にキャプチャされたイベントを失うことなく、フィルタをリアルタイムで適用、調整、削除できます。
ログに記録される各イベントには、セッションID、ユーザー名、プロセスイメージパス、起動元のコマンドライン、プロセスID、スレッドIDなど、詳細なプロパティが表示されます。各操作について、組み込みのシンボルサポートを使用してスレッドスタックをキャプチャできるため、特定の呼び出しの根本原因を特定するのに役立ちます。
内部ログ記録アーキテクチャは、高負荷時でも非常に高い拡張性を発揮するように設計されています。数千万件のイベントとギガバイト規模のログデータを滞りなく処理できるため、システム全体の起動中や再現困難な断続的な障害発生時など、継続的に情報を収集したい場合に不可欠です。
Process Monitorを使用すると、アクティビティをネイティブログ形式でファイルに直接記録できます。このログにはすべての詳細情報が保存され、後でツールの別のインスタンスに読み込むことができます。これは、フォレンジック調査やテクニカルサポートの環境で非常に役立ちます。ユーザーのマシンで発生した問題をキャプチャし、後で自分のコンピューターで結果を分析できるからです。
インターフェースには、ほぼすべてのイベントプロパティに対応した、設定とスクロールが可能な列が用意されています。また、表示列として設定されていないフィールドも含め、あらゆるフィールドに基づいてフィルターを作成できるため、表示したい情報を正確に絞り込むための高度なカスタマイズが可能です。
補助ツールの中でも特に注目すべきは、トレースに含まれるすべてのプロセス間の関係を示すプロセスツリー、メインビューを圧迫することなくポップアップウィンドウで広範囲なフィールドを表示できるプロセスツールチップと詳細情報、そしてインターフェースをブロックすることなく特定の文字列を検索できるキャンセル可能なログ検索機能です。
Process Monitorには、Windows起動の初期段階からの操作を記録するブート時ログモードも搭載されています。起動に関する問題のトラブルシューティング、アプリケーションの障害診断、マルウェアの検出などを行うユーザーにとって、Process Monitorは欠かせないツールとなるでしょう。
フォレンジック分析とマルウェアハンティングにおけるプロセスエクスプローラーとプロセスモニター
Sysinternalsツールは、システムが侵害された疑いがある場合や、マルウェアが使用するプロセスやシステムとの相互作用を突き止めたい場合に特に役立ちます。必ずしも裁判のための証拠収集が目的ではなく、多くの場合、マシン上で何が起こっているかを即座に把握し、迅速に対応したいだけなのです。
通常、最初のステップは、Sysinternalsスイートがインストールされている、またはローカルダウンロードまたはSysinternals Liveを使用してアクセスできることを確認することです。利用可能になると、Process Explorer(procexp.exe)やProcess Monitor(procmon.exe)などの実行ファイルが適切なフォルダに保存され、複雑なインストールなしですぐに起動できるようになります。
Process Explorer を使用すると、すべてのアクティブなプロセスとスレッド、それらの CPU およびメモリ使用量、PID、説明、および関連する他のプロセスを確認できます。感染が疑われる場合は、多くの場合、明確な兆候が見られます。例えば、奇妙な名前のプロセス、通常とは異なる場所に存在するプロセス、署名されていない実行ファイル、または疑わしい親プロセスに依存するプロセスなどです。
フォレンジック調査の現場では、Process ExplorerはSysinternalsの最も有用なツールの1つとなります。例えば、ブラウザプラグイン(かつてはFlashが攻撃の典型的な標的でした)など、侵害された疑いのある特定のプロセスを分析できます。そのプロパティを開くと、実行可能ファイルへのパス、起動コマンド、リソース消費量、ロードされたモジュール、アクセス許可など、多数の情報セクションを含むパネルが表示されます。
権限タブから、そのプロセスにアクセスできるユーザーを確認できます。想定されるアカウント(システム、ローカルユーザー、標準サービス)に加えて、不明または異常なアカウントが表示されている場合は、不正操作や悪意のある永続的な攻撃の兆候である可能性があります。
もう一つの重要な機能は「文字列」タブです。このタブでは、プロセスに埋め込まれたすべてのASCII文字列を抽出できます。これには、開発者が残したコメント、ファイルパス、Webアドレス、コマンド、エラーメッセージ、その他分析対象バイナリの動作をプロファイリングするのに非常に役立つデータが含まれる場合があります。
Process Monitorは、プロセスがファイル、レジストリ、ネットワークに対して実行するすべての操作を詳細に確認できるため、この分析を補完します。トレースをフィルタリングして疑わしいプロセスに焦点を絞り、どのキーにアクセスしたか、どのファイルを読み書きしたか、どのようなエラーを返したかを確認できます。多くの場合、これら2つのツールを組み合わせることで、マルウェアの攻撃経路や永続化方法を特定するのに十分な明確な情報が得られます。
Process Explorer の詳細: インストール、使用方法、シンボル
Process Explorerのインストールは簡単です。procexp.exeファイルを実行するだけです。ポータブルユーティリティなので、インストールウィザードは不要で、システムに大きな変更を加えることもありません。内蔵のヘルプファイルには、オプションと使用モードが詳細に説明されています。
Process Explorerに関して疑問や問題が発生した場合は、MicrosoftのQ&A(質問と回答)プラットフォームにこのツール専用のセクションが用意されています。そこでは、他のユーザーや専門家がさまざまな使用シナリオにおける解決策、ヒント、実際の経験を共有しています。
デバッグ情報を最大限に活用するには、Process Explorer でデバッグシンボルを使用できます。DBGHELP.DLL とシンボルサーバー (たとえば、Microsoft のパブリックサーバー) へのパスを設定する際には、DBGHELP.DLL を含むフォルダーに、これらのサーバーへのアクセスを可能にするライブラリである SYMSRV.DLL も含まれていることが重要です。
SymSrvのドキュメントでは、これらのシンボルパスの設定方法とシンボルサーバーの使用方法について詳しく説明されています。シンボルを適切に設定することで、コールスタックの品質と、プロセスおよびDLLに関する内部情報の表示品質が大幅に向上します。
Process Explorerは比較的頻繁にアップデートされています。バージョン16.43などの最新バージョンでは、クライアント側ではWindows 8.1以降、サーバー側ではWindows Server 2012以降との互換性が維持されています。そのため、異なるバージョンのWindowsが混在する環境に適した汎用性の高いツールとなっています。
プロセスモニターの詳細: フィルタリング、列、使用シナリオ
Process Monitorはスタンドアロンの実行ファイルとしても配布されています。起動するとほぼ瞬時にイベントのキャプチャを開始するため、扱いにくい大量のデータに陥らないように、早めにフィルタを設定しておくことをお勧めします。
メイン ビューの各行はイベントを表します。イベントの発生元となったプロセス、発生時刻、実行された操作 (ファイルの読み取り、レジストリへの書き込み、プロセスの作成など)、パス、返された結果、およびその呼び出しの特定のパラメータなどの追加詳細が表示されます。
このツールは、イベントごとにプロセス名、正確な時刻、完全なリソースパス、結果、および特定のデータなど、豊富な情報を表示します。この豊富な情報により、権限エラーからパスの設定ミス、DLLの配置ミスまで、あらゆる問題を診断できます。
Procmonには、ほぼすべてのフィールドで定義できる高度なフィルタが統合されており、条件と論理演算子を組み合わせることができます。これにより、例えば、アクセス拒否エラー、単一プロセスによる書き込み操作、特定のレジストリキーの読み取りのみに焦点を絞ることが可能になります。
マルウェアのシナリオでは、Process Monitor を使用すると、疑わしいプログラムが具体的に何をしているのかを正確に把握できます。具体的には、どこに書き込みを試みているか、起動時にアクティブ状態を維持するためにどのレジストリ キーを使用しているか、どのファイルをダウンロードまたは変更しているか、システムにどのようなエラーを引き起こしているかなどを確認できます。これらの情報はすべてログに記録され、後で分析したり、セキュリティ インシデントの記録として使用したりするために保存できます。
追加のボーナスとして、シンボルでサポートされるスレッド スタックは、各イベントの発生元となったモジュールの特定の関数に関するコンテキストを提供するため、アプリケーションまたはシステム コンポーネントの内部動作を調査する際に非常に細かいレベルの詳細に到達できます。
プロセスとシステムに関連するその他のSysinternalsツール
Process ExplorerとProcess MonitorはWindowsのプロセスを分析する上で主役となるツールですが、Sysinternalsスイートには、それらのビューを補完し、診断、セキュリティ、パフォーマンスに役立つ多くのユーティリティが含まれています。
Handleは、各プロセスが使用しているシステムファイルやオブジェクトを一覧表示できるコマンドラインツールです。Process Explorerで表示されるハンドル情報のコンソール版であり、スクリプト作成や自動化に非常に役立ちます。
ListDLLsは、コマンドラインから各プロセスがロードしたDLLを表示する機能も備えており、正規の実行ファイル内に挿入されたモジュールや予期しないライブラリを検出するのに役立ちます。
PsToolsスイートに含まれるPsListとPsKillを使用すると、ローカルおよびリモートの両方でプロセスを一覧表示したり終了したりできます。このようなコマンドラインツールは、コンソールから作業する管理者にとって不可欠です。
Sysmon (システムモニター)は、一度インストールすると再起動後もアクティブな状態を維持し、システムアクティビティを詳細に監視およびログ記録するシステムサービスです。プロセス作成、ネットワーク接続、ファイル変更、プロセス間メモリアクセス、リモートスレッド作成などを記録し、Windowsイベントログと連携します。
TcpViewは、ネットワークポートのアクティビティをすべて表示するために、開いているTCPおよびUDP接続をリアルタイムで一覧表示し、ローカルアドレスとリモートアドレス、接続状態、そして最新バージョンのWindowsでは所有プロセス名も表示します。これは、Netstatの強化版グラフィカルツールのようなもので、マルウェアや不正なソフトウェアによって発生する疑わしいネットワークアクティビティの検出に最適です。
Sysinternals スイートの Autoruns およびその他の主要ユーティリティ
ここではプロセスに焦点を当てていますが、Sysinternalsについて語るには、純粋なプロセスツールではないものの、Windows上で何がどのように実行されるかを制御するために不可欠なツールについて触れなければなりません。
Autorunsは、システムやユーザーセッションで自動的に起動するすべての項目を確認・管理するための究極のツールです。MSConfigをはるかに凌駕する機能を備えており、スタートアップフォルダ内のプログラム、RunおよびRunOnceレジストリキー、自動起動サービス、エクスプローラーのシェル拡張機能、ツールバー、ブラウザーのヘルプオブジェクト、Winlogon通知など、多岐にわたる項目を表示します。
情報はテーマ別のタブ(Office、プリンター、Winlogonなど)に整理されており、各自動実行エントリの発生源を確認できます。各行には、エントリ名(自動実行エントリ)、簡単な説明、発行元(発行元)、イメージパス(イメージパス)、インストール日時(タイムスタンプ)、VirusTotalスキャン結果などのフィールドが含まれています。
インターフェース上でピンク色のエントリは、通常、デジタル署名のないファイル、または署名が検証できなかったファイルに対応します。これは、証明書の有効期限切れ、非常に古いプログラム、破損したファイル、または不審な変更が原因である可能性があります。黄色のエントリは、システムが起動時に読み込みを試み続けているにもかかわらず、既に存在しないファイル、またはツールがアクセスできないファイルを示します。このような場合は、何かを削除する前にエントリを注意深く確認することをお勧めします。また、念のため、エントリを削除するよりもチェックを外す方が通常は最善です。
Autorunsでは、異なる時期に取得したキャプチャを比較して、分析結果の違いを確認することもできます。これは、プログラムやマルウェアによって追加された新しい起動エントリを検出するのに非常に役立ちます。
その他の人気のあるSysinternalsツールには、AccessEnum(親フォルダとは異なるファイル、フォルダ、レジストリキーのアクセス許可を一覧表示するツール)、BGInfo(デスクトップの背景に技術的なシステムデータを直接表示するツール)、Contig(ディスク全体に手を加えることなく特定のファイルをデフラグするツール)、Desktops(Windowsの旧バージョンにも存在する仮想デスクトップツール)、Disk2vhd(物理ディスクを仮想マシン用のVHDファイルに変換するツール)、そしてキーボードショートカットで画面をズームしたり描画したりするために技術プレゼンテーションで広く使用されているZoomItなどがあります。
高度な管理機能の分野では、PsToolsはローカルおよびリモート管理のためのコマンドラインユーティリティ群を提供しています。具体的には、パスワードの変更、ログインユーザーの確認、プロセスとサービスの管理、リモートコマンドの実行(PsExec)、システムのシャットダウンなどが可能です。これらのツールの多くは、多数のコンピュータをコマンドラインから管理する企業環境において不可欠です。
Sysinternalsエコシステムの最近の開発
MicrosoftはSysinternalsを定期的なアップデートで維持・拡張し続けています。最近では、プロセスやシステムの分析に直接的または間接的に影響を及ぼす様々なツールに大幅な改善が導入されました。
例えば、ZoomItはバージョン10.0に達し、録画を保存前にトリミングできるビデオクリップエディタと、システムオーディオのキャプチャ機能が追加されました。また、ZoomItはMicrosoft PowerToysに統合され、Sysinternals上ではスタンドアロンユーティリティとして提供され、オープンソース化もされました。
監視の分野では、Sysmon for Linuxは進化を続け、eBPFプログラムの負荷を監視するEbpfEventなどのイベントを組み込むことで、Sysinternalsの焦点をWindows環境だけでなくLinux環境にも広げており、これは特に混合チームにとって興味深い点です。
その他の注目すべきアップデートとしては、CPUトポロジー、NUMAメモリ、プロセッサ特性を視覚化するためのグラフィカルインターフェースを備えたCoreinfo 、セキュリティ強化と最新のリモートデスクトップサポートを備えたRDCMan 、そして追加のドライバを必要とせずにWindows 10および11でCaps LockキーをCtrlキーに再マッピングするツールであるCtrl2Capなどが挙げられます。
Azure DevOps拡張機能を使えば、Sysinternalsツールをビルドおよびデプロイパイプラインに統合できるため、CI/CD環境でビルドやバージョンの問題をより簡単にトラブルシューティングできます。また、ARM64などのアーキテクチャをサポートするLinux対応版のProcDumpやSysmonも提供されています。
総合的に見ると、このエコシステム全体は、Sysinternalsの操作に慣れると、タスクマネージャーやPowerToysと切り離せない存在になることを意味します。特に、上級ユーザーや複数のコンピューターを管理している場合はなおさらです。
Process ExplorerとProcess Monitorに加え、Autoruns、Sysmon、TcpViewといったツールを組み合わせることで、「何かがおかしいが原因がわからない」という状態から、どのプロセスが実行されているか、それらがWindowsとどのようにやり取りしているか、どのリソースにアクセスしているか、そしてどのような痕跡を残しているかを非常に正確に把握できるようになります。これらのユーティリティを理解し使いこなすことで、特定の問題を解決できるだけでなく、サービスとパフォーマンスを最適化し、システムを日常的に適切に管理する能力も向上します。