「タスクスケジューラの最終実行結果が0x1になった」「手動では動くバッチなのに、指定時刻になると失敗する」と困っていませんか?画面上では何が失敗したのか分かりにくいですね。
0x1という表示だけでは原因を一つに決められません。起動したプログラムの終了コードが反映される場合もあるため、実際に何を実行したかとログを一緒に確認します。
▶本記事の概要
- 最終実行結果0x1の意味を調べる
- アクションと実行環境を確認する
- 権限とログで原因を絞る
- まとめ
最終実行結果0x1の意味を調べる
- 0x1だけで原因を断定しない
- タスクの履歴を有効にして確認する
0x1だけで原因を断定しない
タスクスケジューラの「最終実行結果」に0x1が出ても、タスク登録そのものが壊れているとは限りません。実行したバッチ、PowerShell、アプリが終了コード1を返している場合もあります。
タスク名、実行時刻、対象のスクリプトやアプリをメモすると調査を進めやすくなります。
タスクの履歴を有効にして確認する
- スタートから「タスク スケジューラ」を開く
- 対象タスクを選ぶ
- 「履歴」タブで開始・終了の記録を確認する
- 必要に応じて右側の「すべてのタスク履歴を有効にする」を選ぶ
履歴が残っていなかった場合は、有効化後の実行で再度確認します。Microsoft Q&Aでもイベントログによる切り分けが案内されています。
アクションと実行環境を確認する
- 実行ファイルと引数を分ける
- 「開始(オプション)」のフォルダーを確認する
実行ファイルと引数を分ける
対象タスクの「プロパティ」→「操作」から「プログラム/スクリプト」と引数を確認します。PowerShellやPythonの実行ファイルを呼ぶ場合、スクリプトのパスは引数側に指定する構成もあります。
手動起動に成功していても、タスクから呼ぶ時にパスが違うと失敗することがあります。
「開始(オプション)」のフォルダーを確認する
相対パスでファイルを扱うスクリプトなら、作業フォルダーが想定と異なる場合があります。「開始(オプション)」に適切な作業ディレクトリを設定し、再度実行してください。
詳しい事例はMicrosoft Q&Aの0x1に関するやり取りでも紹介されています。
権限とログで原因を絞る
- 実行ユーザーと保存先のアクセス権を確認する
- スクリプト側のエラーを記録する
実行ユーザーと保存先のアクセス権を確認する
「ユーザーがログオンしているかどうかにかかわらず実行する」設定では、手動実行時と権限やネットワークドライブの見え方が異なる場合があります。保存先にアクセスできるかを確認してください。
無条件に管理者権限を付与するのではなく、必要なファイルへの権限だけを見直す方法が安全だと思います。
スクリプト側のエラーを記録する
バッチやPowerShellが失敗している可能性がある場合は、実行ログをファイルへ残せるか確認します。失敗しているのに終了コード0を返すよう変更すると、原因が見えにくくなります。
PC全体の動作がおかしい場合は、PCトラブル診断ツールから症状に近い確認方法を探せます。
まとめ
最終実行結果0x1だけで正確な原因は決まりません。操作の設定、作業フォルダー、実行ユーザー、履歴の順に見直すと、どこで処理が止まったか分かりやすくなります。
▶本記事の振り返り
- 0x1単独では原因を特定できない
- 操作の実行ファイルと引数を確認する
- 作業フォルダーと実行権限を見直す
- タスク履歴とスクリプトのログを確認する

コメント