Bagaimana cara memaksa sinkronisasi waktu di Windows Workstation atau Server?

Jawaban:

81

Seperti yang dikatakan Kyle w32tm /resyncadalah cara modern untuk melakukan ini. Lihat Tautan ini ke Microsoft Knowledgebase (KB 307897) untuk informasi lebih lanjut tentang perintah w32tm.

Ada juga net timeyang merupakan versi lama tetapi mungkin lebih mudah.

Seanchán Torpéist
sumber
4
w32tm /resyncmengatakan "Komputer tidak melakukan sinkronisasi ulang karena perubahan waktu yang diperlukan terlalu besar." karena baterai CMOS saya mati dan jam komputer saya reset pada setiap boot pada 1/1/2000 12:00 AM. Ada bantuan?
Never Quit
Ditemukan solusi sesuai blog.bruteforcetech.com/archives/911 , jangan lupa untuk me-restart layanan W32Time net stop W32Timelalu coba lagiw32tm /resync
Never Quit
1
Tautan rusak.
Stijn Sanders
2
@LightnessRacesinOrbit dan yang lainnya, jika Anda mendapatkan kesalahan "perubahan waktu terlalu besar", gunakan w32tm /resync /force. Tetapi jika Anda belum memulai layanan, jalankan net start w32time. Keduanya dari prompt yang ditinggikan.
cdlvcdlv
4
Untuk mengatasi 'perubahan waktu terlalu besar' ubah entri registri MaxNegPhaseCorrection dan MaxPosPhaseCorrection di HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Config to maksimum (ffffffff)
Tomas F.
37

Bagi yang masih menanyakan pertanyaan ini.

  1. Untuk memperbarui, gunakan perintah di bawah ini (kompatibel server 2008 dan 2012)

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

ubah ntp_server dengan sumber Anda

  1. Mulai ulang layanan waktu

    net stop w32time
    net start w32time
    
  2. Sinkronisasi ulang waktu

    w32tm /resync
    
  3. Verifikasi status sinkronisasi Anda

    w32tm /query /status
    

Perintah di atas harus baik-baik saja jika sumber Anda berfungsi dengan benar dan / atau koneksi Anda baik-baik saja (firewall atau Microsoft Forefront juga bisa menjadi masalah). Perintah di bawah ini dapat membantu mengatasi masalah

Untuk daftar teman sebaya

w32tm /query /peers

Untuk mencantumkan Sumber NTP:

w32tm /query /source
pengguna3011708
sumber
Bagus, jawaban komprehensif! Pasti +1 untuk perintah untuk menyiapkan server NTP.
Shaamaan
Sebagai catatan, ini berfungsi untuk Windows 10 Professional tanpa tanda "/ perbarui" karena tidak valid.
Fmstrat
Untuk pemecahan masalah, sering kali berguna untuk menguji koneksi ke server tertentu:w32tm /monitor /computers:time.windows.com
Randy Orrison
24

Anda dapat menggunakan perintah berikut:

w32tm /resync

Kyle Brandt
sumber
16

Anda dapat gunakan:

w32tm /resync

Selain itu, menggunakan w32tm /resync /rediscoverjuga akan "memaksa pendeteksian ulang sumber daya jaringan sebelum sinkronisasi ulang."

Atau menggunakan:

net time /set

Akan meminta Anda untuk mengatur waktu ke DC. (Bekerja untuk versi Windows yang lebih lama)

Brett Larson
sumber
2
Untuk beberapa alasan w32tm /resynctidak bekerja untuk saya tetapi net time /SET /Yberhasil. Aku digunakan /Yuntuk net timekarena tampaknya tidak membaca stdin benar ketika akan melalui sshd dari cygwin.
qwertzguy
Ketika menjalankan w32tm /resyncsaya mendapat pesan The computer did not resync because no time data was available.bahkan setelah layanan restart tetapi net time /SETbekerja dengan baik untuk saya.
Chris Magnuson
3

OS: MS Windows 7

Semua ide di atas telah dicoba tetapi tidak membantu. Masalah aslinya masih ada: " Komputer tidak melakukan sinkronisasi ulang karena perubahan waktu yang diperlukan terlalu besar. "

Solusi ditemukan di registri: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ w32time \ Config

  • ubah ini jika waktu setempat sedang terburu-buru (mis. 31-Dec-2050): MaxNegPhaseCorrection
  • ubah ini jika waktu lokal tertunda (mis. 1-Jan-1980): MaxPosPhaseCorrection
  • Nilai default adalah 0xD2F0 (yaitu 54000 dtk = 15 jam)

(gunakan Google untuk detail lebih lanjut)

Saya menggunakan win_clock_sync.batfile sederhana ini dari Start 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

Nikmati! :-)

Akos
sumber
Jawaban Anda dapat menggunakan penjelasan fungsi MaxNegPhaseCorrectiondan MaxPosPhaseCorrectionnilai alih-alih menyarankan bahwa mereka harus dinonaktifkan secara membabi buta. Itulah yang dilakukan skrip ini dengan mengatur data mereka ke 0xFFFFFFFF .
Peniru Twisty
Anda tidak dapat mengabaikan pesan kesalahan yang disebutkan "Komputer tidak melakukan sinkronisasi ulang karena perubahan waktu yang diperlukan terlalu besar." tanpa mengubah data dalam nilai MaxNegPhaseCorrection dan MaxPosPhaseCorrection. Atau, apakah ANDA menemukan solusi yang berfungsi untuk masalah asli ?? Dan mengapa Anda menulis "secara membabi buta"? Jika Anda akan mengambil waktu singkat untuk membaca maka Anda bisa melihat mengekspor dan mengimpor data asli dari nilai-nilai ini, yang agak jauh dari melakukan sesuatu "secara membabi buta".
Akos
Anda harus membuat skrip ini mengubah nilai menjadi dinonaktifkan, memaksa pembaruan, dan kemudian mengubahnya kembali ke nilai yang disarankan.
Cory Knutson
Twisty memiliki poin valid yang tidak benar-benar fokus pada masalah yang diangkat oleh NeverQuit ... tetapi kemudian Akos belum dengan jelas menjelaskan mengapa skrip adalah solusi yang tepat untuk NeverQuit. Pada dasarnya, nilai Registry MaxNegPhaseCorrection dan MaxPosPhaseCorrection ada untuk menghentikan layanan W32Time dari menerapkan perubahan dramatis ke waktu saat ini [dalam keadaan seperti sumber waktu eksternal menjadi sangat kacau] Namun, jika beberapa masalah terjadi yang menyebabkan PDCe melayang dengan cepat dari sebuah sumber waktu yang andal, maka kontrol koreksi akan mencegah w32tm memperbaiki arus besar. Dalam situasi ini ::: b
Creaky_Uncle_Nick
@Akos Downvote ditarik kembali karena Anda menunjukkan bahwa skrip Anda memang mengembalikan perubahan MaxNegPhaseCorrectiondan MaxPosPhaseCorrectionnilai. Saya masih mendorong untuk menyertakan penjelasan tentang apa yang dilakukan kedua pengaturan ini karena mereka adalah fitur kunci dari jawaban Anda dan penting bagi seorang admin untuk mengetahui bahwa jika mereka menempatkan pengaturan ini secara permanen mereka akan mengkonfigurasi sistem mereka untuk menerima perubahan waktu, tidak peduli seberapa besar, yang dapat memecah Kerberos dan layanan jaringan penting lainnya.
Peniru Twisty
2

Powershell one liner jika server ntp dikonfigurasi:

gsv w32time | sasv; w32tm /resync /force

Anda dapat meletakkan file bat ini di startup jika CMOS batery Anda gagal sehingga dapat melakukan sinkronisasi ulang saat OS mulai:

@powrshell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'
majkinetor
sumber
/forcebukan opsi baris perintah yang didokumentasikan untuk w32tm /resync.
Dai
0

Coba dalam urutan ini. Bekerja sepanjang waktu.

w32tm /unregister

w32tm /register

net stop w32time

net start w32time

w32tm /resync
slayernoah
sumber
0

Hampir tidak ada solusi (kecuali @Akos) bekerja jika tuan rumah adalah Pengontrol Domain Direktori Aktif Windows Server 2016 (ADDC), karena memperlakukan dirinya sendiri sebagai sumber "terpercaya" yang tidak dapat membuat perubahan waktu besar.

w32tm /resync /forcetidak berfungsi, karena /forcetidak muncul di server 2016.

net time /SET /Y tidak bekerja juga, karena akan bertanya:

Apakah Anda ingin mengatur waktu komputer lokal agar sesuai dengan waktu \AD.example.net? (Y / T) [Y]

Tentu saja, itu tidak akan berhasil jika Anda aktif AD.example.net, /Yhanya menyembunyikan pertanyaan.

Langkah-langkahnya berfungsi untuk saya menggunakan PowerShell:

  1. Tetapkan layanan w32time sebagai tidak dapat diandalkan :
w32tm /config /reliable:no /syncfromflags:manual /update

Opsi /syncfromflags:manualberarti sinkronisasi dengan NTP yang tercantum dalam daftar rekan (yaitu NTP eksternal), /updateuntuk memberi tahu layanan waktu konfigurasi telah berubah.

  1. Mulai ulang w32time
Stop-Service w32time
Start-Service w32time
  1. Sinkronkan
w32tm /resync

Ini seharusnya bekerja.

  1. Jika Anda perlu ADDC sebagai sumber waktu yang andal, buat itu dapat diandalkan lagi:
w32tm /config /reliable:yes /update
Stop-Service w32time
Start-Service w32time
Ding-Yi Chen
sumber
0

Saya memiliki gambar Win10 yang dapat saya pulihkan ke snapshot di mana pesan kesalahan ini selalu dapat direproduksi: "The computer did not resync because the required time change was too big."

Saya telah mencoba membuat skrip solusi untuk masalah ini tanpa hasil:

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

Baik /reliable:nomaupun MaxPosPhaseCorrectionpengaturan, maupun perintah lain ditunjukkan di sini bekerja segera dengan cara direproduksi.

Setelah memperbarui registri, memulai layanan, memperbarui konfigurasi dan memulai kembali layanan saya masih harus menunggu beberapa menit sebelum saya w32tm /resync /rediscoverberhasil.

Sinkronisasi waktu akhirnya berhasil, tidak dengan tepat waktu dan andal.

Keributan
sumber