Windows Server 2019 タスクスケジューラの開始、実行時間がずれる原因

Windows Server 2019 タスクスケジューラの実行時間がずれる事象がありあした。原因は指定したバッチ自体に問題があって、タスクスケジューラのジョブ自体には問題なかったのですが、終了時間が遅延していて気づきました。

 

こういった実行時間がずれるという内容はたまにフォーラムなどでも報告されています。

 

ちなみにタスクスケジューラの開始時間がずれる理由は、NTPの時刻同期に問題があることが多いようです。

 

social.technet.microsoft.com

 

質問内容の抜粋です。

 

時刻同期について
タイムサーバー←①親サーバー←②子サーバー1
                    ←②子サーバー2
                    ←②子サーバー3
                    ←②子サーバー4
親サーバー、各子サーバーはWindows Server 2016でかつすべて同スペックです。
タスクスケジューラにて時刻同期用バッチコマンドを毎日1回時間起動で行っています。
①タイムサーバーと親サーバーは1秒以下の差程度で時刻同期されている。
②親サーバーと各子サーバーは数秒以上または数分時刻がずれており同期されている。
 時刻ズレは子サーバーが遅れていたり、進んでいたりと何日か周期で発生する。
 そのズレ幅も定期的であります。

各子サーバーを親サーバーと同様に直接タイムサーバーから時刻同期を行うと①親サーバーと同じ範囲内で時刻ズレが解消。

現状ですとタイムサーバーに集中してしまうため、当初のように戻したいのですが
具体的に親サーバーや各子サーバーの設定方法およびタスクスケジューラで時間起動するバッチコマンドの一般的な方法を教えていただきたい。 

 

 

回答にもありますが、時刻同期は重要です。

 

Windowsの時刻同期(Windows Timeサービス)は、自動的に必要間隔で時刻同期を行います。ですから「時刻同期用バッチコマンド」なるものは、ふつうは必要ありません。設定が正しければ、なにもしなくても時刻同期を行います。

 

タスクスケジューラの開始時間がずれている場合は、まずはサーバの時刻がずれていないか確認する必要があります。

 

そして、タスクスケジューラはバッチやPowershellスクリプトを実行したの終了時刻が遅い場合は、スクリプトを単体っで動かしてみて、動作確認を行います。

 

Windowsの場合、ドメインに参加している場合はドメインコントローラと時刻同期をする為、NTPサーバを意識する必要はありませんが、ワークグループ環境の場合はNTPサーバを指定してあげる必要があります。