2013年1月31日木曜日

Windows8 タスクスケジューラのエラー

Windowsでは決められた時間にプログラムを動かすのに、昔からAT.exeという

コマンドが使われてきましたが、Windows7からはschtasks.exeに変更されています。

Windows8も同じツールで、これをマウスで扱えるようにしているのが、タスクスケジューラというツールです。

これがいつからか起動時にエラーを出すようになっていました。



エラーメッセージは以下の通り。

「タスクXMLに予期しないノードが含まれています。(HRESULTからの例外:0x80041316)」


相変わらずエラーメッセージでは何を言っているのかわかりません。

スケジューラの各タスクの設定情報は、以下のフォルダに格納されています。


c:\windows\system32\Tasks

フォルダ構成もスケジューラから見たままで、タスク1つが1つのファイルになっており、

それがXMLという形式で書かれているようです。

もう少しわかりやすいエラーメッセージにするなら、

「実行予約の内容を記録してあるXML形式のファイルに変なのがあります。」

というところでしょうか。

ということで、Tasksフォルダの中のファイルをいったん別のフォルダに移動し、
少しずつ戻してはタスクスケジューラを起動することを繰り返し、エラーの原因となっている
タスクファイルを見つけました。

Microsoft\Windows\WS

というフォルダ内のデータがおかしかったようです。よくわかりませんが、WindowStore
の略のようです。これが無ければエラーは出ないので、とりあえず別フォルダに
退避して様子を見ることにしました。

追記:戻したタスクの履歴がすべて無効になってました。まぁ、いいか。