Windowsでログイン時に自動で時刻同期コマンドを実行する


Windows PCで電源入れるといつも時刻がずれている問題

Windowsを立ち上げた際,自動で時刻同期をさせる方法を紹介します.

自分のWindowsマシンは電源をいれると時刻がずれていることがよくありました.ネットで調べるとタイムサーバーを設定する(Windows10 - NTPサーバーの変更 - インターネット時刻)という解決策がよく紹介されていますが,自分の場合それでも問題は解決されませんでしたので,ログイン時に自動で時刻同期コマンドを実行させることで解決しました.本記事でその方法を説明していきます.

ログイン時に時刻同期コマンドを自動実行

時刻同期コマンド

こちらを参考にしました.
How do I force sync the time on Windows Workstation or Server?

コマンドプロンプトを管理者権限で立ち上げます.コマンドプロンプトを管理者権限で立ち上げるには,タスクバーの検索ボックスに「コマンドプロンプト」と打ち,出てきたアイコンを右クリックして「管理者として実行」を押します.
現れたコマンドプロンプトへ以下のコマンドをうち,実行することで時刻同期ができます.

C:\WINDOWS\system32> net stop w32time
C:\WINDOWS\system32> net start w32time
C:\WINDOWS\system32> w32tm /resync
C:\WINDOWS\system32> w32tm /query /status

これらのコマンドをバッチファイル.batに書き,このバッチファイルを自動実行させることになります.ファイルエクスプローラーを開き,任意の場所(例えばドキュメントファルダの中)で右クリック>新規作成>テキストドキュメントを押して新規作成されたファイルを拡張子ごと変更し以下のようなtime_sync.batというファイルを作ります.

time_sync.bat
net stop w32time
net start w32time
w32tm /resync
w32tm /query /status

ちなみに,.batファイルはWindowsでの実行ファイルの一つで,Linuxでいうshellスクリプトに相当します.

ログイン時に管理者権限でコマンドを実行

特定のファイルをログイン時に管理者権限で自動実行させる方法については以下のサイトが写真とともに丁寧に説明されていてとても分かりやすいので,そちらを参照してください.
Windows10 - 管理者権限が必要なアプリを自動起動(スタートアップ)

設定までの流れは

  1. タスクスケジューラーを起動
  2. タスクの設定
  3. 「最上位の特権で実行する」にチェックを入れる
  4. 新しい操作を指定する際,先ほど作成したtime_sync.batファイルのフルパスをダブルクオーテーション"で挟んで入力

といった感じになります.

以上が終われば,今後ログイン時に時刻同期コマンドが自動で実行されるようになります.ログインするとコマンドプロンプトが表示されるようになりますが,1,2秒ですぐ消えるのでご安心ください.