ノートPCでタスクスケジューラに設定したタスクが動作しないときの対処法
2018/04/26
本エントリーの目次
ノートPCの設定作業を行っていると、こんな問題が発生して困ることがあります。
ノートPCのタスクスケジューラに設定したタスクが動作しない!
別のデスクトップPCで動作確認をしたバッチプログラムや、PowerShellスクリプトをノートPCに配置。
デスクトップPCと同じように、ノートPCのタスクスケジューラにスケジュールタスクを設定し、準備完了!
あとは動作確認をすればOK!と思って、スケジュールタスクが動作する時間まで待機していると、あれれ、タスクが動作しない…。
といったケースです。
デスクトップPCのタスクスケジューラに設定したスケジュールタスクは正常に動作しています。
これと同じ設定をノートPCにも行ったにも関わらず、うまく動かないため、原因が分からなくて困ってしまいます。
こんな問題が起きたときには、まず試してほしいことがあります。
ノートPCに電源を接続して動作確認を!
これは特に難しい作業ではありません。
ただノートPCに付属のACアダプターなどの電源ユニットを接続し、バッテリー駆動からAC電源駆動に切り替えるだけ。
デスクトップPCで動作確認をしたバッチプログラムや、PowerShellスクリプトをノートPCに配置。
そしてデスクトップPCで正常動作しているスケジュールタスクと同じ設定をノートPCにも行っていれば、これだけで正常にタスクがスケジュール実行されるようになることが少なくありません。
初期設定では、バッテリー駆動時にはスケジュールタスクは実行されません!
さて、ノートPCをバッテリー駆動からAC電源駆動に切り替えることで、タスクが実行されるようになった!
ということであれば、原因はタスクスケジューラに設定しているスケジュールタスクの設定にあります。
あまり知られていませんが、Windows OSのタスクスケジューラで作成したスケジュールタスクは、初期設定ではバッテリー駆動時には動作しない設定となっています。
おそらくはバッテリー駆動時にはスケジュールタスクを実行しないことで、バッテリーの消費量を抑える効果を狙ってのことでしょう。
バッテリー駆動中であってもスケジュールタスクを実行したい場合、以下の手順で設定を変更する必要があります。
まずタスクスケジューラを起動し、対象のスケジュールタスクのプロパティを開いてください。
プロパティを開いたら、『条件』タブにある『電源』の設定項目を確認してください。
『コンピューターをAC電源で使用している場合のみタスクを開始する』という項目があるので、このチェックを外して無効化します。
スケジュールタスクは初期設定では『コンピューターをAC電源で使用している場合のみタスクを開始する』が有効のため、バッテリー駆動時にはタスクは実行されないのです。
また『コンピューターの電源をバッテリに切り替える場合は停止する』も有効であり、コンピューターがバッテリー電源に切り替わったときにはタスクを停止する設定となっています。
ノートPCでもスケジュールしたとおりにスケジュールタスクを実行する方法
ノートPCでスケジュールしたとおりの時間に毎回スケジュールタスクを実行する場合、プロパティの設定を以下のようにしておくと良いでしょう。
- コンピューターをAC電源で使用している場合のみタスクを開始する:無効(チェックオフ)
- タスクを実行するためにスリープを解除する:有効(チェックオン)
ノートPCではバッテリーでの駆動時間を少しでも長くするために、省消費電力になる設定とされていることが多いです。
そのためスリープを開始するまでの時間がデスクトップPCに比べて早いことが多く、スケジュールしたとおりの時間にタスクが実行されにくいはず。
そこで『タスクを実行するためにスリープを解除する』を有効(チェックオン)に設定しておくことで、たとえスリープ中でもスリープを解除してタスクを実行するようにします。
電源に関する設定については、MicrosoftさんのTechNetの説明が分かりやすいので、併せて参考になさってください。
電源条件
タスクのトリガーがアクティブ化されたとき、コンピューターがバッテリ電源でなく AC 電源で動作している場合にのみタスクを実行するような条件を設定できます。
この条件を設定すると、コンピューターがバッテリ電源に切り替わったときにタスクを停止する条件も設定できます。
タスクに対してこれらの条件を 2 つとも設定すると、コンピューターが AC 電源のときにしかタスクが実行されないようにすることができます。トリガーがアクティブ化されたとき、コンピューターのスリープ モードを解除してタスクを実行するような条件も設定できます。
コンピューターをスリープ解除してタスクを実行する条件を設定する前に、タスクがコンピューターを不適切な時間にスリープ解除しないようにしてください。
またネットワークにアクセスして何らかの処理を行うタイプのスケジュールタスクの場合、ネットワーク接続が利用できないときにタスクを動作させても正常に処理を完了できません。
この場合には『次のネットワーク接続が使用可能な場合のみタスクを開始する』を有効(チェックオン)に設定し、適切な接続を選択しておくと良いでしょう。
こうすることでネットワーク接続が使用できないときは、タスクを実行させないように設定できます。
その他スケジュールタスクの条件設定時の注意点
スケジュールタスクのプロパティの『条件』タブの上部には、以下のような注意書きがあります。
『トリガーに加えて、タスクを実行するかどうかを決定する条件を指定してください。指定した条件に1つでもあてはまらない場合、タスクは実行されません。』
特に重要なのが『指定した条件に1つでもあてはまらない場合、タスクは実行されません』という部分です。
文章のとおりですが、指定した条件の一つでも満たしていない状況下ではタスクが実行されません。
そのためタスクが想定していたように開始しない場合には、条件を再度確認してみてください。
またノートPC製品の多くでは、先にも書いたとおりバッテリーによる駆動時間を伸ばすため、PCの消費電力が小さくなるような設定が初期設定となっています。
この状態ではPCの性能が意図的に抑えられており、本来の性能を十分に発揮できません。
省消費電力性能よりも処理速度を優先させて、より高速にスケジュールタスクを実行したければ、電源プランの設定を高パフォーマンス設定に変更しておくと良いでしょう。
参考:パソコンの動作が重い(遅い)時に電源プラン変更で改善する方法
尚、最近のノートPC製品の中には、初期設定では高パフォーマンス設定の電源プランを選択できないように設定されていることがあります。
もし電源プランの設定画面で高パフォーマンス設定が見つからない場合には、PowerShellを起動して以下コマンドを実行してください。
1 | powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c |
このコマンドを実行することで、高パフォーマンス設定が選択され、電源プランの選択画面にも高パフォーマンス設定が表示されるようになります。
以上、参考になさってくださーい!