日常的なタスクの自動実行のために、Windowsの「タスクスケジューラ」は便利です。Windows 7/8.1をWindows 10にアップグレードしたことで、以前は動いていたはずのタスクの登録がエラーになっていませんか? 特に、Windows 7からのアップグレードの場合は、タスクスケジューラの仕様変更が影響しているかもしれません。
2015年7月にスタートしたWindows 7やWindows 8.1からのWindows 10への無料アップグレード。全く問題なくアップグレードできた人もいれば、アプリケーションやデバイスの互換性問題に悩まされた人もいるでしょう。あるいは、原因不明のトラブルに巻き込まれた人もいるはずです。
Windows 7 Service Pack1(SP1)から設定やアプリを引き継いでWindows 10にアップグレードした場合は、Windows 7 SP1環境でスケジュールされていた「タスク」の移行でトラブルが発生しているかもしれません。アップグレード後に「タスクスケジューラ」や「イベントビューアー」を開いて見なければ、トラブルが生じていても気付かないこともあります。
今回も筆者が実際に遭遇した、スケジュールされたタスクの移行に関するトラブル事例とその解決方法を紹介します。
Windows 7 SP1からWindows 10にアップグレードしたPCで、タスクスケジューラ(taskschd.msc)を起動したところ、「選択されたタスク“タスク名”が存在しません。現在のタスクを表示するには、[最新の情報に更新]をクリックしてください。」というエラーメッセージが2回表示されました。アップグレードによって、2つのタスクの登録が壊れてしまったようです(画面1)。
メッセージに従って「最新の情報に更新」をクリックしても、同じメッセージが表示され、問題のタスクは「タスクスケジューラライブラリ」に表示されません(画面2)。
削除しても問題のないタスクであると分かっていれば、タスクを削除することで問題は解決します。タスクスケジューラに問題のタスクが表示されない場合でも、「SCHTASKS /QUERY」コマンドで問題のタスクを表示できれば、さらに「SCHTASKS /DELETE」コマンドを実行することで問題のタスクを削除できます。
では、削除してよいかどうかを判断できない場合、または削除したくない場合は、どう対処すればよいのでしょうか。
スケジュールされたタスクがエラーとなっている原因を調査するために「%Windir%\System32\Tasks」(%Windir%は通常「C:\Windows」)フォルダにある、問題となっているタスクのファイルを、別のパスにXMLファイルとしてコピーします。
例えば、コマンドプロンプトを開き、次のコマンドラインを実行します(画面3)。なお、問題のタスクのファイルは「%Windir%\System32\Tasks」フォルダよりも深い階層のパスに存在することもあります。
CD %Windir%\System32\Tasks
COPY "タスク名" %Temp%\タスク名(または分かりやすいファイル名).xml
この操作で、問題のタスクをXMLファイルとしてエクスポートできました。ここで、タスクスケジューラのエラーを発生させている問題を解消するために、スケジュールされたタスクの登録を削除します。コマンドプロンプトを管理者として開き、次のコマンドラインを実行してください(画面4)。
SCHTASKS /DELETE /TN "タスク名" /F
この方法でタスクを削除できない場合は、次の手順を試してみてください。
まず、「%Windir%\System32\Tasks」フォルダにある問題のタスクのファイルを、以下の「DEL」コマンドで削除します(画面5)。
CD %Windir%\System32\Tasks
DEL タスク名
次に、「レジストリエディター(Regedit.exe)」を開き、次のキーにある「Id」値のデータ(例:{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX})を控えます。
「Id」値の値を確認したら、以下の5つのレジストリキーを全てキーごと削除します。{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}は、「Id」値のデータに置き換えてください。
Copyright © ITmedia, Inc. All Rights Reserved.