タスクスケジューラ:スケジュールされたバッチスクリプトが実行されていません
タスクスケジューラのプロパティ。。。
Windows Task Scheduler
からのジョブProperties
(ほとんどのスクリーンショットを参照)で。。。
1. General
タブで、印刷画面Aに示すように、以下のオプションが選択/チェックされているか、またはチェックされていないことを確認します
- チェックを外す
Run only when user is logged on
- 小切手
Run whether user is logged on or not
- 小切手
Run with the highest privileges
2. Conditions
タブで、印刷画面Bに示すように、以下のオプションが選択されている、チェックされている、またはチェックされていないことを確認します。
- 小切手
Wake the computer to run this task
3. Actions
タブ、クリックEdit
、およびいることを確認しStart in (optional)
、次の例に示すと同じように設定されている(DO NOTは、バッチスクリプトが置かれている場所を指している完全なパスのためにその周りに二重引用符を入れて)なし「最後のバックスラッシュ\
」画面印刷Cを
セキュリティに関する考慮事項
OK
(上記2.)を押すと、これを実行するための資格情報を要求するプロンプトが表示されます。その資格情報はEXECUTE
、それが存在するバッチファイルにアクセスする必要があり、実行中のバッチファイルを実行するためにもアクセスする必要があります。スクリプトアウトしたこと。
このプロセスの静的サービス/プロキシユーザーアカウントをセットアップし、その資格情報を使用してプロセスを実行するのが最善の方法です。パスワードが強力で、無期限に設定されていることを確認する必要があります。またEXECUTE
、バッチにアクセスし、バッチスクリプトプロセスが実行されているもの、コマンドやリソースなどを実行する必要があります。それも利用します。
それはオプションと思われるRun whether user is logged on or not
オプションをチェックしなければなりませんRun with highest privileges
タスクスケジューラから予想されるように、それが実際に実行するため。
エラーチェック
実際のバッチスクリプトに問題があるが、Windows タスクスケジューラが実際にそれを実行して実行したが、何らかの理由でバッチスクリプトロジックがエラーになるなどの場合、タスクスケジューラはこのレベルでこのエラーを認識しない場合があります。その観点から(ほとんどの場合、デフォルトで)、バッチファイルを実行しています。実行可能であり、そのためのアクセス権がある限り、ジョブは正常に実行されます。
エラーチェックまたはログをバッチスクリプトロジックに追加して、このレベルで問題をキャッチ(またはトラブルシューティング)します。これには、バッチスケジューラが実行するセキュリティコンテキストが、バッチスクリプトが実行するコマンドやリソースなどに適切にアクセスできるようにすることも含まれます。
グループポリシーに関する考慮事項
グループポリシーを確認し、バッチジョブの権限としてログオン
回答: Windowsでは、この権限はローカルまたはドメインのセキュリティポリシーを通じて付与されます。ローカルセキュリティポリシーを使用してこれを行うには、次の手順に従います。
- でコントロールパネルを開き[管理ツール]、その後、ローカルセキュリティ
ポリシー。
- [セキュリティ設定]の下で、[ ローカルポリシー]を開き、[ ユーザー権利の割り当て]を強調表示します。
- [バッチジョブとしてログオン]を見つけます。プロパティを開き、この権利を必要とするユーザーを追加します。
- 完了したら、変更を保存して、[ローカルセキュリティ設定]ウィンドウを閉じます。
変更はすぐに反映されます。ドメインセキュリティポリシーを変更するには、ドメインコントローラで、コントロールパネルのドメインセキュリティポリシーユーティリティを使用します。
マップされたドライブまたは完全なUNCパスを使用したバッチスクリプトロジック、および問題。。。
スクリプトがマップされたネットワークドライブを参照しているがRun whether the user is logged on or not
、それをにしたい場合、このコンテキストでは、バッチプロセスが期待どおりのことを行うためのドライブマッピングが実際には存在しない可能性があります。
UNC
問題を回避するために、可能であれば、マップされたドライブ文字ではなく、バッチスクリプトロジックでパスを使用してください。それ以外の場合PUSHD \\ServerName\ShareName
は、バッチプロセスの最初に使用してから、バッチプロセスPOPD
の最後に使用する必要があります。NET USE X: \\ServerName\ShareName
バッチプロセスの最初にドライブをマッピングし、バッチプロセスNET USE X: /DELETE
の最後にドライブを切断することができます。
その他
MS HOTFIX(KB977353):Windows 7またはWindows Server 2008 R2を実行しているクライアントコンピューターでグループポリシーの[即時タスク]基本設定項目が実行されない
スケジュールされたタスクのSettings
タブととして表示されているオプションを確認しますStop the task if it runs longer than:
。このオプションがオンで、期間が実行中のスクリプトよりも短い場合、タスクスケジューラはそれを早期に強制終了するため、期待どおりの結果が得られない可能性があります。これは、念のためトラブルシューティングを行う際に確認する必要があるものです。
以下からのTriggers
スケジュールされたタスクのタブを選ぶとEdit
オプションを設定してくださいStart:
日付と時刻をすでに過ぎていない価値があります。日付と時刻がFutureの値に設定されていることを確認してください。それ以外の場合は、ジョブが予想どおり次のスケジュールされた時刻に実行するようにスケジュールされていることに気付く場合があります。ただし、タスクスケジューラによって実行されることはなく、[タスクスケジューラ History
]タブには実行されないことが示されます(実行されないため)。トリガーを編集し、将来の日付や時刻で更新するだけで、問題が発生した場合にこの問題を解決できます。
プリントスクリーン
印刷画面A
印刷画面B
印刷画面C