Windows10からWindows7に戻したらタスクが破損してタスクスケジューラーが起動しない

タスクが実行されていない

Windows10にアップグレードされてしまったWindows7にて登録してあったタスクが動いていない。ダイナミックDNS更新が行われていなかったので気づいた。

タスクスケジューラーを開くとエラーメッセージが。

タスクスケジューラーを開くと以下のような「タスク イメージは破損しているか、または変更されています。(HRESULT からの例外:0x80041321)」メッセージが何度も表示された。
エラーダイアログ

どうやら幾つかのタスクが破損しているらしい。具体的にどのタスクが破損しているかまでは教えてくれないので、困りました。

やっぱり同様のエラーが発生し、問題となっている

検索してみると同様の問題がヒットし、具体的対策も書かれていた。
http://www.one-x.co.jp/technicalnotes/software/os/windows/windows10windows7IME.html
以降の作業は全てタスクスケジューラーが起動していない状態で実行すること!

対策する

タスクのバックアップ

まずはタスクファイルをバックアップ。エクスプローラー上でまるごと別の場所にコピー。
C:\Windows\system32\tasks

RepairTasksで修復を試みる

こちらからRepairTasksをダウンロードしてScan→Repairしてみる。
https://repairtasks.codeplex.com/releases/view/617575

RepairTasks

完全に修復できなかった

Repair completed: 34 repairs succeeded; 5 repairs failed
修復できない5件のタスクは以下。
Recovery of task Microsoft\Windows\PerfTrack\BackgroundConfigSurveyor failed with 'エラー: タスク XML に、書式設定が正しくない値または範囲外の値が含まれています。(2,8):version:1.5'
Recovery of task Microsoft\Windows\RAC\RacTask failed with 'エラー: タスク XML に、書式設定が正しくない値または範囲外の値が含まれています。(2,8):version:1.5'
Recovery of task Microsoft\Windows\Shell\WindowsParentalControls failed with 'エラー: タスク XML に、書式設定が正しくない値または範囲外の値が含まれています。(2,8):version:1.5'
Recovery of task Microsoft\Windows\Tcpip\IpAddressConflict1 failed with 'エラー: タスク XML に、書式設定が正しくない値または範囲外の値が含まれています。(2,8):version:1.5'
Recovery of task Microsoft\Windows\Tcpip\IpAddressConflict2 failed with 'エラー: タスク XML に、書式設定が正しくない値または範囲外の値が含まれています。(2,8):version:1.5'

どうしようもないので拾ってきた初期タスクをインポートする

修復できないタスクを
C:\Windows\system32\tasks
から削除し(RepairTasksで修復を試みたためバックアップファイルが同一フォルダにあるのも削除)、タスクスケジューラーを起動するとエラーが発生していないことが確認できた。修復できないタスクについて元の情報は残っていないので直しようもないが、先ほどRepairTasksをダウンロードした同じところに"Windows7 Tasks.zip"というWindows7の初期タスクファイルがあるので、しょうがないのでそれを信用しダウンロード。

Windows7初期タスク

zipを展開して中に修復できなかったタスクと同様らしいタスクファイルが存在することを確認。そのファイルをコピーしただけではエラーはなくならないので、タスクスケジューラーを起動し
1. 修復できなかったタスクの場所へ、タスクスケジュールライブラリをたどる
2. その場所へ行き、中央のタスク欄に問題のタスクが存在しないことを確認
3. 「タスクのインポート」で"Windows7 Tasks.zip"から得た初期タスクをインポート

タスクスケジューラー


これで一応問題は解決した風。本当に元に戻ったかどうかは知るすべはないのでしょうがない。Windows10にアップグレードするときにバックアップを取っておいて、それに戻すのが最善であるのはわかっているが時間が取れなかったので、これを対応策とした。
(ちゃんと対策するので、あればクローンしてアップグレードしていたので元に戻そうと思えば戻せる。)
これからも問題が発生しないと不具合に気づくことができないと思うとワクワクしてきた。