Technical Notes
テクニカルノーツ
Windows10からWindows7に戻したら日本語入力ができなくなった場合の対処法
Windows10の半強制アップグレードが行われているらしい
2016年3月11日現在、Windows10への意図しないアップグレードが行われてしまったという報告が相次いでいる。
いずれの場合も自ら望んでアップデートしたわけではないのだが、キャンセルの方法がわからずに知らず知らずにアップグレードを選択してしまったという事情らしい(詳細はWindows10への半強制アップグレードが再び猛威を奮っている模様?を参照)。
アップグレード後、1ヶ月以内はWindows7に戻すことが可能
望まぬアップグレードにより Windows10 になってしまった場合でも救済措置はある。アップグレード後、元の OS に戻す機能が用意されている。元のOSに戻す方法を書くことが本稿の主旨ではないので、必要な場合は「Windows10にアップグレードした後、元のOSに戻す方法」を参照されたい。
日本語入力ができなくなる
問題は元に戻した後に発生する。一件、普通に Windows7 が起動したかに見えて、いざ日本語入力をしようとしても IME が立ち上がってこない。ESCを押してもALT+ESCを押しても、一切の日本語入力ができない。キーボードのプロパティを操作してもまったくの無駄である。
Vista以降の Windows では、サインイン後に MsCtfMonitor というタスクが実行されて IME を呼び出すことができるようになるのだが、一旦 Windows10にアップグレードしたことによって Windows7 のタスクが正常に実行されなくなってしまったことが原因である。確認のためにタスクスケジューラを開こうものなら「タスク イメージは破損しているか、または変更されています。(HRESULT からの例外:0x80041321)」というエラーが表示され、OKボタンを押しても繰り返しエラーが表示されて、少なくとも80回を超えるクリックを強いられる(万が一クリック地獄に堕ちてしまった場合はCtrl+Shift+ESCでタスクマネージャを開いて、タスクスケジューラを強制終了させよう)。
タスクスケジューラを立ち上げずにエラーを確認するためにはコマンドラインから
schtasks /query <ENTER>
を実行する方法もあるが、後述するプログラムで同様のことができるので必ずしも実行する必要はない。
IMEを起動させるだけなら ctfmon.exe をスタートアップに入れることで復旧可能だが、タスクスケジューラに大量のエラーを残したままであり、根本的な解決とはならない。システム管理者としてはエラーの影響が測定できない以上、捨てておくべきではない。
大量のタスクの復旧
もっとも優れた復旧方法はWindowsバックアップから復元することだが、大半のエンドユーザは毎日バックアップしていることなどない。そうなるとひとつひとつ破損したタスクを復旧させていかなければならないのだが、壊れたタスクを復旧させる方法はなかなかむずかしい。レジストリとデータファイルをひとつひとつ操作する必要があるため、現実的な方法ではないのだ。しかし、ありがたいことにこの復旧方法をプログラム化してくれた人がいる。Repair Tasks がそれだ。
Repair Tasks を実行せよ
日本語入力はできなくともブラウザは動く。まずは Repair Tasks のダウンロードページ(2018.6.26補記:CodePlexのサポート終了に伴い、サイトはGitHubに移行した)へ行って、RepairTasks.zip をダウンロードしよう。23KBほどしかない小さなプログラムだから、あっという間に落とせるはずだ。
適当な場所にダウンロードしたZIPを解凍し、RepairTasks.exe を起動すると下記のウィンドウが表示される。
タスクをバックアップし、エラーをスキャンせよ
バックアップはいつも大事だ。Repar Tasks を実行したら、すぐにウィンドウ右下の Backup Tasks を実行しよう。保存する場所はデスクトップでもドキュメントフォルダでもどこでもオーケーだ。
次にウィンドウ左上の Scan ボタンを押すと、大量のエラーが流れていくはずだ(この時の結果をテキストファイルで残しておきたいときには Save Results ボタンを押すこと)。
破損したタスクを修復する
エラーを検知すると Scan ボタン右にある Repair ボタンが活性化される。迷わず Repair ボタンをクリックしてみよう。タスクの修復が始まると思う。ただし、すべてのタスクが修復できるとは限らない。おそらく 31個ほどのエラーが残る。これは Windows10で実行されるタスクが残っているために発生するエラーなので、致命的なエラーではない。
Windows7 を再起動してみよう
とりあえずはこれで必要な修復は終わったはずなので、Windows7 を再起動させてみよう。ExcelなりWordなりメモ帳なりを立ち上げて、日本語入力ができるようになっていれば復旧は成功だ。
あとは暇なときにタスクマネージャを開き、根気よくエラー画面のOKボタンを押してから、タスクのフォルダをひとつひとつ開いてエラーが出るタスクを削除していけばいい。
その他の障害が併発する場合もある
以上の手順だけで復旧がついた場合は比較的幸せだ。中には Windows10 自体が正常に起動しなかったり、Windows7 のデスクトップアイコンが表示されなかったりする場合がある。
Windows10 自体が正常に起動しない場合は Shift+再起動
Windows10 自体が正常に起動しない場合には、なんとか Ctrl+Shift+ESC でタスクマネージャを表示させて、再起動アイコンを表示させよう。そして Shiftキーを押しながら再起動アイコンをクリックしてみよう。これは Windows 8 以降のセーフモードの起動方法だ。
この方法で再起動すると起動オプションの選択ができるようになるので「トラブルシューティング」-「詳細オプション」から Windows 7 への復元の道が開くはずだ。
Windows 7 のデスクトップアイコンが表示されなくなった場合
実際に起こったことなのだが、Windows 7 のデスクトップアイコンが表示されなくなったケースもある。
この場合の対処は極めて簡単で、デスクトップ上の任意の位置(どこでもいい)で右クリックして、「表示」メニューから「デスクトップ アイコンの表示」をチェックするだけでいい。
今後も半強制アップグレードは続く
この半強制アップグレードによって多くのエンドユーザ・システム管理者・システム担当者の貴重な時間が浪費されたことだろうが、おそらくこれで終わりではないだろう。
また復旧方法が見つからず、泣きながらひとつひとつエラーを復旧している担当者もいるかもしれない。私自身、この復旧方法を見つけ出すために数時間を費やした。
同様の現象で悩んでいる日本の Windowsユーザの一助となればと考え、手順をまとめてみた。あらかじめ準備をしていたわけではないのでスクリーンショットは用意できなかったが、明日も本件のサポートでエンドユーザ企業に訪問するので、できればもう少し整備した情報にしたい。