Macのアプリがもたついてきたとき、アクティビティモニタを開いてCPUやメモリの数字を見る。だが、そのアプリが裏で何のファイルを掴んでいるのか、子プロセスに何を抱えているのかまでは分からず、たいてい調査はそこで止まる。
Windowsで同じ場面に遭遇した人なら、Microsoft自身が無料配布する診断ツール「Process Explorer」に頼ってきたはずだ。タスクマネージャーよりずっと詳しく、プロセスが開いているハンドルや読み込んだDLLまで一覧できる。この定番ツールが、macOS向けのネイティブアプリ(v1.0)として初めて公開された。Microsoft公式Sysinternalsブログによると、公開日は2026年11月5日だ。Windows版の中身をそのまま持ってきただけなのか、それともMac専用の機能も備えているのか、使う前に気になるところだ。
アクティビティモニタでは何が足りないか
アクティビティモニタはCPU・メモリ・エネルギーの使用量までは見せてくれる。しかし、あるプロセスがどのファイルを開いているか、どの証明書で署名されているか、どのプロセスを親に持つかという「構造」までは踏み込まない。Windows版Process Explorerが長年支持されてきたのは、まさにこの踏み込みの深さだった。
Mac版も公式GitHubリポジトリのREADMEによれば、同じ踏み込みをMacで再現する。見られるようになったのは次の情報だ。
- プロセスツリー。サービス・新規/終了したプロセス・一時停止中などを色分けしたリアルタイム表示
- 下部ペイン。DLLに相当するモジュール、ハンドル/ファイルディスクリプタ、スレッドの一覧を切り替えられる
- プロパティウィンドウ。Image・Performance・Threads・TCP/IP・Security・Environment・Stringsの各タブ
- システム情報ウィンドウ。CPU・メモリ・I/O・ネットワーク・GPUのグラフ
アクティビティモニタで止まっていた調査が、ここから先へ進められるようになった。ただ、これがWindows版をそのまま持ってきただけなのか、Mac向けに何か加わっているのかはまだ分からない。
Mac専用の機能はあるのか
対応はmacOS 14(Sonoma)以降。開発にはSwift・SwiftUI・AppKitを使う。READMEの「開発言語・技術」の節には、プロセス情報の取得にmacOSが公開しているlibproc・sysctl・Mach host statistics・Security framework・IOKit・Metalを使う、と書かれている。Windowsの内部APIをそのまま呼べるわけではない。見た目や操作感をWindows版に似せつつ、中身はmacOS向けに書き直したアプリだ。
そのうえで、READMEの「独自機能」の節にはMac専用の機能が6つ挙がっている。
| Mac専用機能 | 内容 |
|---|---|
| Apple Silicon表示 | 性能コア(Pコア)・効率コア(Eコア)をラベルと色分けで表示 |
| TCP/IP表示 | ローカル/リモートアドレスと、非同期の逆引きによるリモート名、TCP状態 |
| Finder連携 | モジュール/イメージの詳細ウィンドウから「Reveal in Finder」で直接開ける |
| 署名・Team ID・公証確認 | Securityタブで署名者・発行元・証明書チェーン・Team ID・公証(notarization)の状態・SHA-256・VirusTotal連携を確認 |
| メニューバー表示 | CPU使用率の履歴をメニューバーに常時表示 |
| 特権ヘルパー(任意) | 全ユーザーのプロセス詳細を取得するための追加機能 |
Windows版にあるハンドル検索やDLL検索といった機能がREADMEには明記されておらず、搭載済みか今後の課題かは分からない。それでも、Appleの公証(notarization)の状態まで1画面で確認できるのは、Windows版には無い発想の機能だ。アプリが「本当にApple公証を通ったものか」を、ファイルを右クリックして情報を見るような遠回りをせずに確かめられる。ただし、これらの機能は自分のアカウントのプロセスを見ている分には素直に動く。他のユーザーのプロセスまで見ようとすると、話が変わってくる。
他人のプロセスを見ると何が起きるか
表の最後に挙げた「特権ヘルパー」が、今回いちばん手間のかかった部分だ。同じプロパティウィンドウを開いても、見えるものがプロセスの持ち主によって変わる。
- 自分のアカウントで動いているアプリ: 起動した瞬間から詳細が一覧ですぐ埋まる
- バックグラウンドで常駐する別ユーザーのプロセス: 同じ欄を開いても、情報の一部が空欄のまま返ってくる
Windowsなら管理者権限で実行するだけで解決する場面のはずだ。自分はここで、てっきり権限設定ひとつで片づく話だと思っていたので、この先の仕組みの作り込みには驚いた。
macOSでは、他ユーザーのプロセスの詳細を取りに行く操作自体が、libproc・sysctlといった公開APIの外側にある。docs/RELEASE.mdによると、Microsoftはこれを埋めるために専用のヘルパー(launchdデーモン)を別途用意した。「cross-user thread sampling and privileged actions over XPC」、つまりユーザーをまたいだスレッドのサンプリングと特権操作を、XPCという仕組み越しに行うためだという。
ヘルパーを動かすための3つの条件
このヘルパーを実際に動かすには、Microsoft自身も3段階の手続きを踏んでいる。
- 署名:
com.apple.security.cs.debuggerというentitlementを、Hardened Runtime下で署名する - 登録:
SMAppServiceというmacOSの仕組みでアプリに登録する。アドホック署名では登録に失敗し、Developer ID署名(できれば公証も)が要る - 承認: 利用者自身がシステム設定の「ログイン項目と機能拡張」で、このデーモンを明示的に承認する
承認が済むとPrivilegedDataProvider.isHelperInstalled()がtrueを返し、アプリが特権側の情報源に切り替わる。
空欄だった欄がここで埋まり、Windowsで管理者権限を得たのと同じ見え方になる。Windowsなら一手で済む「管理者として実行」が、Macでは署名・公証・ユーザー承認という3段構えに分解された格好だ。公式のリリース方針では、ヘルパーが使えないときにアプリ単体の構成へ黙って切り替えてはいけないとも定めている。利用者が気づかないまま情報が欠けるのを避けるためだろう。
使うには何がいるか
- 対応OS: macOS 14(Sonoma)以降
- 入手方法: GitHub Releasesからディスクイメージ(DMG)を無償でダウンロード。現行バージョンは1.0.0(2026年11月5日公開)
- 他ユーザーのプロセスまで見たい場合: アプリ初回起動後、システム設定の「ログイン項目と機能拡張」で特権ヘルパーを承認する
- ライセンス表記: リポジトリ内にLICENSEファイルや明記が見当たらなかった。利用条件は公式ページで改めて確認してから使うのが無難
ソースコードもGitHubで公開されているため、気になる人はxcodegenでプロジェクトを生成してビルドする手順もREADMEに載っている。ただし配布されているDMGをダウンロードするだけなら、この手間は要らない。
まとめ
Windows専業だった診断ツール「Process Explorer」が、2026年11月5日にmacOS 14以降向けのネイティブアプリとして無償公開された。アクティビティモニタでは追えなかったプロセスの構造を見られるようになった。それだけでなく、Apple Silicon表示や署名・公証の確認、VirusTotal連携といったMac専用の機能も備えている。一方で、他ユーザーのプロセスまで見るには、Windowsの管理者権限とは違い、署名・公証済みの特権ヘルパーをシステム設定で承認するひと手間が要る。macOSの権限モデルに合わせて、見た目以上に作り直された1本だ。
コメント
気づきや感想をどうぞ記事への補足や、読んで考えたことをお寄せください。個人情報や、他の人を傷つける内容の投稿はお控えください。
投稿にはGoogleログインが必要です。
Googleでログイン投稿にはGoogleアカウントの表示名が公開されます。メールアドレスは取得・公開しません。
コメントを読み込んでいます…