現在のプログラムのアンインストールまたは変更が完了するまで、待てない
Windows 7 で、コントロールパネルのプログラムと機能から、プログラムをアンインストールしようとしたとき、「現在のプログラムのアンインストールまたは変更が完了するまでお待ちください。」というメッセージが表示され、プログラムが削除できないときがある。
ながさわさんは、あるプログラムを削除しようとしたときに、Avast (ウィルス対策ソフト)が、警告を出したときに、プログラムのアンインストールが終わらずに、Windows を再起動するまで、他のプログラムが消せない、ということになってしまう。
うーん。これはいけない、ということで、どのプロセスが邪魔をしているのかを調べてみることにした。
Windows には UNIX の ps と kill に相当するコマンドがあるので、確かめてみる。
C:\Windows\system32>tasklist
epuninst.exe 12916 Console 1 3,120 Kどうやらこれらしいので、
epuninst.bin 11596 Console 1 80 K
C:\Windows\system32>taskkill /im epuninst.exe /f /Tで、ご退場いただいたつもりなのだが、…うーん、消えない。
成功: PID 11596 のプロセス (PID 12916 の子プロセス) を終了しました。
成功: PID 12916 のプロセス (PID 13188 の子プロセス) を終了しました。
C:\Windows\system32>taskkill /im epuninst.bin /f /T
成功: PID 11596 のプロセス (PID 12916 の子プロセス) を終了しました。
tasklist コマンドに親プロセスを表示するオプションがあるかと思って、調べてみても、そんなものはない。
しかたがないので、Google 先生に "windows 親タスク id" で教えてもらうと、こんなものが。
これで調べると、epuninst.bin や epuninst.exe は svchost が親プロセスだった。この pid のタスクを削除すれば、めでたくメッセージは出なくなりました。
めでたし、めでたし。
ごきげんよう。