情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

「操作を完了できませんでした。アクセスが拒否されました」エラーでプロセスを終了できない問題について

Windows 10 で終了しなくなってしまったプロセスを終了しようと、タスクマネージャから「タスクの終了」を行ったところ、「プロセスを終了できません。操作を完了できませんでした。アクセスが拒否されました」というエラーになってしまいました。この問題に関連することをここに書いておきます。動画プレイヤーのGUIが固まってしまい、その部分が真っ白い四角として残ってしまって、どうにも消せない状態になってしまいました。画面の領域が欠けてしまったような状態です。

「アクセスが拒否されました」エラー

タスクマネージャの詳細タブから、「タスクの終了」を使って終了できないプロセスを強制終了しようとしました。

すると、次の画面が表示されます。

○○.exeを終了しますか?
開かれているプログラムがこのプロセスに関連づけられている場合、プログラムは閉じられて、保存されていないデータは全て失われます。システムプロセスを終了すると、システムが不安定になる可能性があります。続行しますか?
[プロセスの終了] [キャンセル]

ここで、「プロセスの終了」をクリックしました。

しかし、次のエラーが出て失敗してしまいました。

windows-unable-to-terminate-process-message

プロセスを終了できません
操作を完了できませんでした
アクセスが拒否されました

Process Explorer (管理者権限)から

続いて、Process Explorer から終了してみようとしたのですが、特に効果は無く、表示が英語になったくらいの違いしかありませんでした。

Are you sure you want to kill ○○.exe?

Error terminating process: アクセスが拒否されました。

コマンドプロンプト(管理者権限)から

次に、コマンドプロンプトのTaskkillコマンドから強制終了をしてみることにしました。

C:\WINDOWS\system32>taskkill /PID 11044
成功: PID 11044 のプロセスに強制終了のシグナルを送信しました

表示は「成功」ですが、シグナルを送信した、というだけで、実際は全く終了していませんでした。

C:\WINDOWS\system32>taskkill /PID 10904 /F
エラー: PID 10904 のプロセスを強制終了できませんでした。
理由: 実行中のタスクのインスタンスがありません。

「/F」オプションを追加してみても、このように強制終了には失敗してしまいました。

絶対に消せないような場合も?

この症状までだと、状況ごとにいろいろなパターンがあり得るんだとは思いますが、その状態によっては、プロセスがどうにも終了できない状態になってしまうようです(主に、driverのバグが原因)。

"End Process" on the Processes-Tab calls TerminateProcess which is the most ultimate way windows knows to kill a process.

If it doesn't go away, it's currently locked waiting on some kernel resource (probably a buggy driver) and there is nothing (short of a reboot) you could do to make the process go away. 引用元

詳しくは、Microsoft TechNet の Unkillable Processes | Mark's Blog という記事で説明されています。

ただ、今回のプロセスがこれに該当するのかを調べたりするために、この記事に従ってKernel Debuggerのコマンドを使ってみたかったのですが、Local Kernel-Mode Debugging - Windows 10 hardware dev から Setting Up Local Kernel Debugging of a Single Computer Manually - Windows 10 hardware dev へたどってみたところ、windbg / kd を使うためには、「bcdedit /debug on」を実行しておいたうえで、再起動するという準備が必要なようで、これをすると、プロセスが消えてしまうため、今回は試すことができませんでした。また発生して時間があれば、試してみたいと思います。

メモ:
「bcdedit.exe /debug on」 on 「管理者: コマンドプロンプト」 @ 2016/01/13 0:08 → 「この操作を正しく終了しました。」
「bcdedit /dbgsettings local」 on 「管理者: コマンドプロンプト」 @ 2016/01/15 0:33 → 「この操作を正しく終了しました。」

とりあえず対策

ということもありますが、とりあえず例えプロセスが完全に終了できなくなってしまったとしても、再起動すれば(再起動をきっかけに再発する原因でもない限り)そのプロセスも終了してくれて、問題はひとまず解決します。

困ったらWindowsを再起動してみてください。

コメント(0)

新しいコメントを投稿