Windows TIPS
[System Environment] |
タスク・ログ・ファイルの見方
デジタルアドバンテージ
2004/08/21 |
|
対象OS |
Windows 2000 |
Windows XP |
Windows Server 2003 |
|
|
 |
■ |
タスクの実行結果を表すログは、最大サイズは32Kbytesに制限された、Unicode形式のテキスト・ファイルに記録されている。 |
■ |
タスク・ログは循環形式で記録される。最後まで書かれると、また先頭から順番に記録される。最後に実行されたタスクの場所には特別な文字列が記入されている。 |
|
|
Windows OSに用意されているタスク・スケジューラ([コントロール]パネル[タスク]で起動できる)は、定期的なプログラムの実行を行うためのサービスである。実行プログラムやスクリプトなどをタスクとして登録しておけば、ユーザーが介入することなく(システムにログオンしている必要はない)、指定された時間にプログラムが実行される。
指定したタスクが正しく実行されたかを確認するにはログ・ファイルを調査すればよい。だがタスクのログはWindows OSのほかのサービスなどログと違って、イベント・ビューアに記録されることはない。代わりに、ログ記録専用に割り当てられたテキスト・ファイルに記録されることになっている。本TIPSでは、このログ・ファイルの内容の確認方法について解説する。
なおタスクのログには、タスク自身が正しく起動されたか/実行を正常に終了したか、などの結果が記述されているだけであり、タスクとして登録されたプログラムが出力した結果などが含まれているわけではない。
ログ・ファイルをオープンする
タスクのログは「SchedLgU.Txt」という名前のUnicode形式のテキスト・ファイルに記録されている(SchedLgUはSchedule Log、UはUnicodeの略だと思われる)。このファイルを開くには、通常は[コントロール]パネルの[タスク]フォルダを表示させてから、[詳細設定]メニューの[ログの表示]を選択すればよい。エクスプローラで[マイ コンピュータ]-[コントロール パネル]-[タスク]を表示させ、[詳細設定]-[ログの表示]を実行してもよい。
 |
タスクのログを表示させる |
タスクの実行結果のログを表示させるには、[詳細設定]メニューの[ログの表示]を実行するか、ログ・ファイルを直接メモ帳などでオープンすればよい。 |
|
 |
これを実行する。 |
|
リモートのコンピュータのタスク・ログを確認する場合は、エクスプローラでリモート・コンピュータの[コントロール パネル]-[タスク]を開くだけでは不十分である。この方法では、登録されているタスクの内容を確認することはできるが、[ログの表示]メニューを実行しても、何も表示されない。直接ファイル名を指定して、メモ帳などで開く必要がある。SchedLgU.Txtファイルの格納場所は、Windows 2000やWindows XPでは%SystemRoot%\SchedLgU.Txtだが、Windows Server 2003の場合は%SystemRoot%\Tasks\SchedLgU.Txtとなっている。
ログ・ファイルの内容
[ログの表示]を実行すると、通常はメモ帳でSchedLgU.Txtがオープンされる。このファイルの内容は単純なテキストであり、見ての通り、ジョブ(タスクの実行単位)ごとに、その名称と実行開始時間、終了時間が記録されているだけである。またシステムの起動時と終了時には、タスク・スケジューラ・サービスそのものの開始と終了を表すために、「タスク スケジューラ サービス」というエントリも記録されている。
 |
ログ・ファイルの例 |
ログ・ファイルには、ジョブの名前、実行開始時間、終了時間、実行結果(を表す数値コード)が上から順番に記録されている。ログ・ファイルの最大サイズは32Kbytesに制限されているので、最後まで書き込んだらまたファイルの先頭から記録される。最新のエントリの場所には「***** 一番最近のエントリはこの行より上にあります *****」という文字列が書き込まれている。 |
|
 |
ジョブの名前と実行開始時間。 |
|
 |
ジョブの実行完了時間。 |
|
 |
ジョブの終了コード(プログラムが返したコードが終了コードとなる)。 |
|
 |
ログを最後に書き込んだ場所を示すための特別な文字列。このすぐ上にあるエントリが最新のログとなる。 |
|
 |
上書きされた過去のエントリ。 |
|
ログへの記録は、ジョブの開始時と終了時にそれぞれ行われる。通常はすぐに終了するため、1つのジョブに対する開始と終了のログは連続しているが、長い実行時間が必要なログの場合には、離れた場所に記録されていることもある。
なお何らかの理由でログの実行開始がエラーになったりした場合は(例:指定されたファイルが存在しない、起動することができないなど)、その理由が記録される。
基本的にはこのようなエントリがずっと続いているだけであるが、このままではログ・ファイル・サイズが無限に大きくなってしまう可能性がある。そこでタスク・スケジューラでは、ログ・ファイルの最大サイズを32Kbytesに制限している。最後まで書き込むと、またファイルの先頭へ戻り、新しいエントリが記録される。
このような循環構造になっているため、古いエントリは新しいエントリで上書きされて消えていってしまう。そこで、最新のエントリが入っている場所を分かるようにするために、最後に記述された部分には「***** 一番最近のエントリはこの行より上にあります *****」という文字列が書き込まれている。ログ・ファイルを開いたら、下へ何度かスクロールして、この文字列が書き込まれている部分を探していただきたい。その直前の部分が、最後に実行されたタスクの実行結果である。
Windows Server Insider フォーラム 新着記事