かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.198 タスクマネージャーによるプロセス/サービス制御|セイテク・シス管道場(Web)
2026年04月27日配信
執筆者:山内 和朗
「セイテク・シス管道場(Web)」では、Windows Serverの要素技術やシステム管理の基本的な部分に焦点を当てたいと思います。今回は、皆さんPCの調子がおかしいときにまず確認してみるであろう「タスクマネージャー」について深掘りします。
Windows ServerやWindowsで作業をしていて、アプリケーションが応答なしになったり、パフォーマンスが重いなど違和感を感じたときに、真っ先に頼るのは「タスクマネージャー」(Taskmgr.exe)でしょう。タスクマネージャーのGUIのデザインは、Windowsのバージョンとともに変化してきました。特に、最新のWindows 11では、Windowsの新しいデザインに統一され、簡易表示(Windows Vista~Windows 11初期までありました)が廃止されるなど、見た目が大きく変わっています。しかし、主要な機能は今も昔も変わりません(画面1)。

画面1 Windowsのバージョンとタスクマネージャー、左からWindows XP、Windows 8、Widows 11(25H2)
タスクマネージャーを起動する方法はいくつかあります(画面2)。
タスクバーの右クリックメニューから
Windows Xメニュー(Windows+Xキーを押すか、Windowsロゴ上で右クリック)から、[Ctrl]+[Shift]+[Esc]キーのショートカットキーで
[Ctrl]+[Alt]+[Del]キー(Secure Attention Sequence《SAS》キー)を押したときに表示されるWindowsセキュリティの画面(WinlogonデスクトップやSecure Desktopとも呼ばれます。vol.194を参照)のメニューから
「ファイル名を指定して実行」([Windows]+[R]キー)やコマンドプロンプトウィンドウ、PowerShellウィンドウからtaskmgrと入力して
Windowsの検索メニューで”タスク マネージャー”や“taskmgr”を検索して

画面2 タスクマネージャーを起動するさまざまな方法
トラブル時のタスクバーの用途の1つは、応答しなくなったアプリケーションの強制終了や、サービスの停止/開始/再起動操作です。もし、問題のプロセスを選択しようとしたとき、プロセスの一覧が目まぐるしく入れ替わるようであれば(「CPU」列や「メモリ」列による並べ替えが有効なとき)、[Ctrl]キーを押してみてください。タスクマネージャーのプロセス一覧やグラフ表示は、[Ctrl]キーが押されている間、表示がストップするという機能があり、この機能を利用すれば目的のプロセスを捕まえやすくなります。あるいは、「名前」列をクリックして昇順(∧)または降順(∨)に並べ替えても、目的のプロセスを捕まえやすくなります(画面3)。

画面3 応答しないアプリケーションを強制終了する。プロセスの一覧が目まぐるしく入れ替わる場合は「Ctrl」キーを押して表示を停止すればよい
問題のプロセスを識別できない場合は、「詳細」タブに「コマンドライン」列を表示させることで、ヒントが得られる場合があります(画面4)。

画面4 「詳細」タブに表示する列を増やすことで、プロセスを特定するヒントが得られるかも。ちなみに、タスクマネージャーの「パフォーマンス」タブから開始できる「リソースモニター」は「perfmon.exe /res」
デスクトップに対話的にログオンできるのであれば、タスクマネージャーは強力な味方ですが、デスクトップを利用できないケースもあります。例えば、コンソールにアクセスできない環境(サーバールームのサーバーや、クラウド上のVMなど)でリモートデスクトップ接続が何らかの問題で失敗する、デスクトプ全体がフリーズしてどうにもならない、実行中のプロセスの影響(Windows Update関連のTiWorkerなど)でシャットダウンが終わらないなどの状況です。
事前に、PowerShellリモーティングやSSH接続(Windows Server 2019以降およびWindows 10/11ではオプション機能としてOpenSSH Serverが利用可能です)、物理的なシリアルコンソール接続、Azure VMのシリアルコンソール接続*1など、帯域外接続の方法を用意しておけば、テキストベースのコンソールに管理者としてログオンして問題のプロセスやサービスを操作できます(画面5)。
*1 Windows ServerおよびWindows 11では、緊急管理サービス(Emergency Management Service《EMS》)を有効にすることで、SAC(Serial Administration Console)というシリアルコンソール接続が可能です。
管理者のコマンドシェル(cmd.exe)で、プロセスの一覧を表示し、特定のプロセスを強制終了するには、次のように実行します。なお、管理者として実行しない場合、自分の実行したプロセス以外を終了しようとしてもアクセスが拒否されます。
| TAKLIST TASKKILL /PID <プロセスID> /F |

画面5 タスクマネージャーが利用できない環境(この例ではAzure VMのシリアルコンソール)では、TaskkillコマンドやStop-Processでプロセスを強制終了できる
同じことを、PowerShell(powershell.exeまたはpwsh.exe)なら、次のように実行します。
| Get-Process Stop-Process -Id <プロセスID> -Force または Get-Process <プロセス名> | Stop-Process -Force |
Windowsサービスは、管理者のコマンドシェル(cmd.exe)で次のようにして停止または開始できます。管理者として実行しない場合、サービスを停止または開始しようとしてもアクセスが拒否されます。
| net stop <サービス名> net start <サービス名> または sc start <サービス名> sc stop <サービス名> |
PowerShell(powershell.exeまたはpwsh.exe)なら、次のようにして、停止、開始、再起動できます。
| Stop-Service <サービス名> Start-Service <サービス名> Restart-Service <サービス名> |
コマンドラインによるプロセスの終了やサービスの停止、開始操作は、管理者として実行しました。しかし、タスクマネージャーを明示的に管理者として起動する操作は通常しないと思います。それでも管理者ユーザー(BUILTIN¥Administratorsローカルグループのメンバーユーザー)であれば、別ユーザーの権限で実行中のプロセスの終了や、サービスの停止、開始ができないということはありません。
UAC(ユーザーアカウント制御)が有効な場合、管理者ユーザーがログオンすると、特権やAdministratorsグループなどが制限されたトークンと、高い特権を持つフルトークンが作成され、通常の操作は制限されたトークンで実行されます。そして、フルトークンによる実行が必要な場合は、UAC昇格プロンプトと対話する必要があります。しかし、タスクマネージャーを起動する際に、UAC昇格プロンプトは表示されません。それでも、タスクマネージャーはフルトークンを使用して実行されます。
タスクマネージャーがフルトークンで実行されるのは、アプリケーションマニフェストで「AutoElevate」属性が有効になっているからです。タスクマネージャーが昇格なしでフルトークンで動作していることや、AutoElevate属性については、Windows SysinternalsのProcess Explorer(Procexp)で確認することができます(画面6)。他にも、「システム構成(msconfig)」や「システムイメージの作成(sdclt.exe)」、「イベントビューアー」「コンピューターの管理」「デバイスマネージャー」「サービス」「ディスクの管理」などのMMC管理ツール(mmc.exe)にAutoElevate属性が設定されています。

画面6 タスクマネージャー(Taskmgr.exe)はAutoElevate属性による自動昇格で、フルトークン(整合性(Integrity)レベル「High」)で起動する
なお、ログオン中のユーザーが標準ユーザーの場合は、明示的に管理者の資格情報を指定して実行しない限り、サービスの制御ができない、別のユーザーのプロセスが見えないなど、タスクマネージャーの一部の機能が制限されます(画面7)。

画面7 標準ユーザーではタスクマネージャーの機能がアクセス権の影響で一部制限される
Procexpの話が出ましたが、Procexpはタスクマネージャーの高機能版と言えるツールであり、プロセスの詳細情報と正確なパフォーマンス情報を提供します。DLLやハンドル(ファイルハンドルなど)を含めてプロセスやスレッドを検索する機能や、
(Find Window's Process)アイコンをアプリケーションウィンドウにドラッグ&ドロップしてプロセスを特定できるところも便利です。Procexpには、タスクマネージャーを置き換えるオプション「Replace Task Manager」を備えていて、これを利用すればタスクマネージャーを起動する操作でProcexpが起動するようになります。ただし、Procexpをタスクマネージャーと置き換えた場合、自動昇格することなく制限トークンで起動することに注意してください。すべてのプロセスの情報を参照するには、「Files」メニューから「Show Details for All Processes」を実行して、UAC昇格プロンプトで昇格する必要があります。
Process Explorer|Sysinternals(Microsoft Learn)
※ 4月9日に最新のマイナーバージョンアップが出ています。Process Explorer v17.11|Sysinternals Blog(Tech Community)
Windows 10/11では、TasklistコマンドやGet-Processコマンドレット、Procexpでは見えるのに、タスクマネージャーからは見えないプロセスがあります。それは、「Memory Compression」という名前のプロセスです(画面8)。この機能は、Windows 10の初期のバージョン(バージョン1511)で追加された「メモリ圧縮」という機能に関係したプロセスです。この機能が初めて登場したとき、タスクマネージャーには「システムとメモリ圧縮」というプロセス(プロセスID 4)が表示され、このプロセスがCPUやメモリリソースを大量に消費しているように“見えた”ため、ちょっとした騒ぎになりました。Windows 10バージョン1607では、「System」(プロセス ID 4)と「Memory Compression」に分割され、「Memory Compression」はタスクマネージャーに表示されなくなりました。
メモリ圧縮機能は失敗だったので廃止されたのだと勘違いした人もいたかもしれません。しかし実際には、タスクマネージャーからその存在を隠すことで騒ぎを収めたのでした。「Memory Compression」プロセスはGB単位でメモリを消費しているように見えますが、それはメモリを圧縮して空き領域を作り出すため一時的に利用された結果であり、その領域の大部分はすぐに再利用可能なプライベートワーキングセットです。これがタスクマネージャーに表示されると、メモリ圧縮機能について知らない人にとっては、そのプロセスがメモリを実際に占有していると勘違いしてしまうでしょう。なお、Windows Serverでは、メモリ圧縮機能は既定で無効になっているため(Get-MMAgentで確認可能)、「Memory Compression」プロセスは存在しません。

画面8 メモリ圧縮機能はメモリを圧縮して空き領域を作り出す機能。「Memory Compression」プロセスが大量のメモリを消費しているように見えるが、その実はすぐに再利用可能なプライベートワーキングセット
今回はここまで。次回は今回もれてしまったタスクマネージャーの「パフォーマンス」タブの話です。
セイテク・シス管道場(Web) (1) |(2)|(3)|(4) |(5) |(6)