web-dev-qa-db-ja.com

Windowsワークステーションまたはサーバーで時刻を強制的に同期するにはどうすればよいですか?

Windowsワークステーションまたはサーバーを構成済みのタイムソースに同期するコマンドは何ですか?

97
Kyle Brandt

カイルが言ったようにw32tm /resyncはこれを行う最新の方法です。 w32tmコマンドの詳細については、この Microsoftナレッジベースへのリンク(KB 307897) を参照してください。

もあります net timeこれは古いバージョンですが、おそらく簡単です。

92

まだこの質問をしている人のために。

  1. 更新するには、以下のコマンドを使用します(2008および2012サーバー互換)

    w32tm /config /manualpeerlist:"ntp_server" /syncfromflags:manual /reliable:yes /update
    

ソースでntp_serverを変更します

  1. タイムサービスを再起動します

    net stop w32time
    net start w32time
    
  2. 時間を再同期する

    w32tm /resync
    
  3. 同期ステータスを確認する

    w32tm /query /status
    

上記のコマンドは、ソースが正常に動作している場合、または接続に問題がない場合は問題ありません(ファイアウォールまたはMicrosoft Forefrontも問題になる可能性があります)。以下のコマンドはトラブルシューティングに役立ちます

ピアを一覧表示するには

w32tm /query /peers

リストする方法NTPソース:

w32tm /query /source
41
user3011708

次のコマンドを使用できます。

w32tm /resync

24
Kyle Brandt

以下を使用できます。

w32tm /resync

さらに、w32tm /resync /rediscover"再同期の前にリソースを割り当てられたネットワークを強制的に再検出します。"

または使用:

net time /set

DCに時間を設定するように求めます。 (古いバージョンのWindowsで機能)

17
Brett Larson

OS:MS Windows 7

上記のアイデアはすべて試されましたが、効果はありませんでした。元の問題はまだ残っています: "必要な時間の変更が大きすぎたため、コンピュータは再同期しませんでした。 "

解決策はレジストリにあります:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config

  • 現地時間が急いでいる場合はこれを変更します(例:2050年12月31日):MaxNegPhaseCorrection
  • 現地時間が遅れている場合は変更してください(例:1980年1月1日):MaxPosPhaseCorrection
  • デフォルト値は0xD2F0(つまり、54000秒= 15時間)です。

(詳細についてはGoogleを使用してください)

私はこのシンプルなwin_clock_sync.bat St​​art Menu StartUpのファイル:

echo off
echo Sync computer time from internet
echo.
echo Back-up registry w32time\Config
reg export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config exported_w32time.reg /y
rem changing the registry keys temporarly:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxNegPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxPosPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
echo.
echo w32tm /config /update
w32tm /config /update
echo.
echo w32tm /resync /rediscover 
w32tm /resync /rediscover 
echo.
echo Restore registry w32time\Config
reg import exported_w32time.reg

楽しい! :-)

3
Akos

Ntpサーバーが構成されている場合、Powershell 1ライナー:

gsv w32time | sasv; w32tm /resync /force

OSの起動時に再同期できるように、CMOS bateryが失敗した場合は、この.batファイルを起動時に配置できます。

@powrshell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'
2
majkinetor
net start w32time
w32tm /resync

Riot Gamesによると

1
NatoBoram

ホストがWindows Server 2016 Active Directoryドメインコントローラー(ADDC)である場合、ほとんどの解決策(@Akosを除く)は機能しません。これは、ホストがそれ自体を、大きな時間変更を行うことができない「信頼できる」ソースとして扱うためです。

w32tm /resync /forceはサーバー2016に表示されないため、/forceは機能しません。

net time /SET /Yも機能しません。

ローカルコンピュータの時刻を\AD.example.netの時刻と一致するように設定しますか? (はい/いいえ)[はい]

もちろん、AD.example.netを使用している場合は機能しません。/Yは質問を非表示にするだけです。

手順は、PowerShellを使用して私に役立ちます。

  1. W32timeサービスをnreliableとして設定:
w32tm /config /reliable:no /syncfromflags:manual /update

オプション/syncfromflags:manualは、NTP=ピアリストにリストされている(つまり、外部NTP)と同期することを意味します。構成が変更されたことをタイムサービスに通知するための/update

  1. W32timeを再起動します。
Stop-Service w32time
Start-Service w32time
  1. 同期
w32tm /resync

これはうまくいくはずです。

  1. 信頼できるタイムソースとしてADDCが必要な場合は、再び信頼できるようにします。
w32tm /config /reliable:yes /update
Stop-Service w32time
Start-Service w32time
0
Ding-Yi Chen

このエラーメッセージが常に再現可能なスナップショットに復元できるWin10イメージがあります:"The computer did not resync because the required time change was too big."

私はこの問題の解決策を無駄なくスクリプト化しようとしました:

reg import nettime.reg # updates MaxPosPhaseOffset and MaxNegPhaseOffset

net start w32time
w32tm.exe /config /manualpeerlist:"pool.ntp.org",0x8 /syncfromflags:manual /reliable:no /update  
w32tm.exe /query /configuration
w32tm.exe /resync /rediscover
w32tm.exe /resync /force

/reliable:noMaxPosPhaseCorrection設定も、ここに示されているその他のコマンドも、再現可能な方法ですぐに機能しました。

レジストリを更新し、サービスを開始し、構成を更新し、サービスを再起動した後も、何分も待たなければなりませんでしたw32tm /resync /rediscoverは成功します。

時間同期は最終的には成功しますが、タイムリーで信頼できる方法ではありません。

0
Comotion

この順序で試してください。常に機能します。

w32tm /unregister

w32tm /register

net stop w32time

net start w32time

w32tm /resync
0
slayernoah