ฉันจะบังคับให้ซิงค์เวลาบน Windows Workstation หรือเซิร์ฟเวอร์ได้อย่างไร


84

คำสั่งให้ซิงค์เวิร์กสเตชัน Windows หรือเซิร์ฟเวอร์กับแหล่งเวลาที่กำหนดไว้คืออะไร


1
ดูข้อมูลเพิ่มเติมเกี่ยวกับ W32tm ได้ที่นี่ ... technet.microsoft.com/en-us/library/bb491016.aspx
Nathan Hartley

คำตอบ:


81

อย่างที่ไคล์กล่าวว่าw32tm /resyncเป็นวิธีการที่ทันสมัยในการทำสิ่งนี้ ดูลิงก์นี้ไปยังฐานความรู้ของ Microsoft (KB 307897)สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง w32tm

นอกจากนี้ยังnet timeมีรุ่นเก่า แต่อาจจะง่ายกว่า


4
w32tm /resyncกล่าวว่า "คอมพิวเตอร์ไม่ได้ซิงค์อีกครั้งเนื่องจากการเปลี่ยนแปลงเวลาที่ต้องการมีขนาดใหญ่เกินไป" เมื่อแบตเตอรี่ CMOS ของฉันหมดและนาฬิกาคอมพิวเตอร์ของฉันจะรีเซ็ตทุกครั้งที่บูตใน 1/1/2000 12:00 AM ความช่วยเหลือใด ๆ
ไม่ต้องออกจาก

พบวิธีแก้ปัญหาตามblog.bruteforcetech.com/archives/911อย่าลืมรีสตาร์ทบริการ W32Time net stop W32Timeจากนั้นลองอีกครั้งw32tm /resync
ไม่ต้องออกจาก

1
ลิงก์เสีย
Stijn Sanders

2
@LightnessRacesinOrbit และคนอื่น ๆ ถ้าคุณได้รับ "การเปลี่ยนแปลงเวลามีขนาดใหญ่เกินไป" w32tm /resync /forceข้อผิดพลาดการใช้งาน net start w32timeแต่ถ้าคุณไม่ได้มีการให้บริการเริ่มต้นทำงาน ทั้งจากพรอมต์ยกระดับ
cdlvcdlv

4
เพื่อแก้ 'เปลี่ยนเวลามีขนาดใหญ่เกินไป' สตรีเปลี่ยนแปลงรายการ MaxNegPhaseCorrection และ MaxPosPhaseCorrection ใน HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Config สูงสุด (ffffffff)
โทมัสเอฟ

37

สำหรับผู้ที่ยังคงถามคำถามนี้อยู่

  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
    

คำสั่งข้างต้นควรใช้ได้ถ้าแหล่งที่มาของคุณทำงานอย่างถูกต้องและ / หรือการเชื่อมต่อของคุณเป็น OK (ไฟร์วอลล์หรือ Microsoft Forefront อาจเป็นปัญหาได้เช่นกัน) คำสั่งด้านล่างสามารถช่วยแก้ปัญหาได้

เพื่อแสดงรายการเพื่อน

w32tm /query /peers

ในการแสดงรายการแหล่งที่มาของ NTP:

w32tm /query /source

ดีคำตอบที่ครอบคลุม! +1 ที่แน่นอนสำหรับคำสั่งในการตั้งค่าเซิร์ฟเวอร์ NTP
Shaamaan

โปรดทราบว่าสิ่งนี้ใช้ได้กับ Windows 10 Professional โดยไม่มีการตั้งค่าสถานะ "/ update" เนื่องจากไม่ถูกต้อง
Fmstrat

สำหรับการแก้ไขปัญหามักจะมีประโยชน์ในการทดสอบการเชื่อมต่อกับเซิร์ฟเวอร์เฉพาะ:w32tm /monitor /computers:time.windows.com
Randy Orrison


16

คุณสามารถใช้ได้:

w32tm /resync

นอกจากนี้การใช้w32tm /resync /rediscoverจะ"บังคับให้ทำการค้นหาซ้ำของเครือข่ายอีกครั้งก่อนซิงโครไนซ์อีกครั้ง"

หรือใช้:

net time /set

จะแจ้งให้คุณตั้งเวลาเป็น DC (ใช้ได้กับ Windows รุ่นเก่ากว่า)


2
ด้วยเหตุผลบางอย่างw32tm /resyncไม่ทำงานสำหรับฉัน แต่net time /SET /Yทำ ฉันใช้/Yสำหรับnet timeเพราะมันเห็นได้ชัดว่าไม่ได้อ่าน stdin อย่างถูกต้องเมื่อจะผ่าน sshd จาก Cygwin
qwertzguy

เมื่อใช้งานw32tm /resyncฉันได้รับข้อความThe computer did not resync because no time data was available.แม้หลังจากรีสตาร์ทบริการ แต่net time /SETทำงานได้อย่างถูกต้องสำหรับฉัน
Chris Magnuson

3

ระบบปฏิบัติการ: MS Windows 7

ลองทำตามแนวคิดทั้งหมดข้างต้นแล้ว แต่ไม่ได้ผล ปัญหาเดิมยังคงมีอยู่: " คอมพิวเตอร์ไม่ได้ซิงค์อีกครั้งเนื่องจากการเปลี่ยนแปลงเวลาที่ต้องการมีขนาดใหญ่เกินไป "

พบวิธีแก้ไขปัญหาในรีจิสทรี: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ w32time \ Config

  • เปลี่ยนสิ่งนี้หากเวลาท้องถิ่นกำลังรีบ (เช่น 31-Dec-2050): MaxNegPhaseCorrection
  • เปลี่ยนสิ่งนี้หากเวลาท้องถิ่นล่าช้า (เช่น 1 มกราคม 2523): MaxPosPhaseCorrection
  • ค่าเริ่มต้นคือ 0xD2F0 (เช่น 54000 วินาที = 15 ชั่วโมง)

(ใช้ Google สำหรับรายละเอียดเพิ่มเติม)

ฉันใช้win_clock_sync.batไฟล์อย่างง่ายจาก 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

สนุก! :-)


คำตอบของคุณสามารถใช้คำอธิบายฟังก์ชั่นของMaxNegPhaseCorrectionและMaxPosPhaseCorrectionค่าแทนที่จะบอกว่าควรปิดการใช้งานแบบสุ่มสี่สุ่มห้า นั่นคือสิ่งที่สคริปต์นี้ไม่โดยการตั้งค่าข้อมูลของพวกเขาที่จะ0xFFFFFFFF
ตัวปลอมตัว Twisty

คุณไม่สามารถเพิกเฉยต่อข้อความแสดงข้อผิดพลาดที่กล่าวถึง "คอมพิวเตอร์ไม่ได้ซิงค์อีกครั้งเนื่องจากการเปลี่ยนแปลงเวลาที่ต้องการมีขนาดใหญ่เกินไป" โดยไม่ต้องเปลี่ยนข้อมูลในค่า MaxNegPhaseCorrection และ MaxPosPhaseCorrection หรือคุณพบวิธีแก้ไขปัญหาการทำงานกับปัญหาเดิมหรือไม่? และทำไมคุณถึงเขียน "สุ่มสี่สุ่มห้า" หากคุณใช้เวลาอ่านสั้น ๆ คุณจะเห็นการส่งออกและนำเข้าข้อมูลดั้งเดิมของค่าเหล่านี้สิ่งที่อยู่ไกลจากการทำบางสิ่งบางอย่าง "สุ่มสี่สุ่มห้า"
Akos

คุณควรให้สคริปต์นี้เปลี่ยนค่าเป็นปิดใช้งานบังคับให้อัปเดตแล้วเปลี่ยนกลับเป็นค่าที่แนะนำ
คอรี Knutson

Twisty มีคะแนนที่ถูกต้องซึ่งไม่ได้มุ่งเน้นไปที่ปัญหาที่เกิดขึ้นโดย NeverQuit ... แต่ Akos ไม่ได้อธิบายอย่างชัดเจนว่าทำไมสคริปต์จึงเป็นโซลูชันที่เหมาะสมสำหรับ NeverQuit ในสาระสำคัญค่ารีจิสทรี MaxNegPhaseCorrection และ MaxPosPhaseCorrection มีอยู่เพื่อหยุดบริการ W32Time จากการใช้การเปลี่ยนแปลงครั้งใหญ่กับเวลาปัจจุบัน [ในสถานการณ์เช่นแหล่งเวลาภายนอกจะแย่มาก] อย่างไรก็ตามหากมีปัญหาบางอย่างที่นำไปสู่ ​​PDCe ดริฟท์อย่างรวดเร็วจาก แหล่งเวลาที่เชื่อถือได้จากนั้นการควบคุมการแก้ไขจะป้องกัน w32tm แก้ไขการดริฟท์ครั้งใหญ่ ในสถานการณ์นี้ ::: b
Creaky_Uncle_Nick

@Akos Downvote ถูกดึงกลับโดยอิงจากการชี้ให้เห็นว่าสคริปต์ของคุณจะแปลงการเปลี่ยนแปลงกลับเป็นค่าMaxNegPhaseCorrectionและ MaxPosPhaseCorrectionฉันยังคงสนับสนุนให้รวมถึงคำอธิบายว่าการตั้งค่าทั้งสองนี้ทำอย่างไรเนื่องจากเป็นคุณลักษณะที่สำคัญของคำตอบของคุณและเป็นสิ่งสำคัญที่ผู้ดูแลระบบควรทราบว่าหากพวกเขาตั้งค่าเหล่านี้ไว้อย่างถาวรพวกเขาจะกำหนดค่าระบบ ไม่ว่าจะมีขนาดใหญ่เพียงใดซึ่งสามารถทำลาย Kerberos และบริการเครือข่ายสำคัญอื่น ๆ
ตัวปลอมตัว Twisty

2

Powershell หนึ่งซับถ้าเซิร์ฟเวอร์ ntp มีการกำหนดค่า:

gsv w32time | sasv; w32tm /resync /force

คุณสามารถใส่ไฟล์. bat นี้ในการเริ่มต้นหาก CMOS batery ล้มเหลวดังนั้นจึงสามารถซิงค์ใหม่เมื่อเริ่มต้นระบบปฏิบัติการ:

@powrshell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'

/forcew32tm /resyncไม่ได้เป็นตัวเลือกบรรทัดคำสั่งสำหรับเอกสาร
Dai


0

ลองในคำสั่งนี้ ทำงานได้ตลอดเวลา

w32tm /unregister

w32tm /register

net stop w32time

net start w32time

w32tm /resync

0

แทบไม่มีวิธีแก้ปัญหา (ยกเว้น @Akos) ทำงานหากโฮสต์เป็นตัวควบคุมโดเมนของ Active Directory ในโดเมน Windows Server 2016 (ADDC) เนื่องจากถือว่าตัวเองเป็นแหล่ง "เชื่อถือได้" ที่ไม่สามารถเปลี่ยนแปลงครั้งใหญ่ได้

w32tm /resync /forceไม่ทำงานเนื่องจาก/forceไม่ปรากฏในเซิร์ฟเวอร์ 2016

net time /SET /Y ไม่ทำงานอย่างใดอย่างหนึ่งเพราะมันจะถามว่า:

คุณต้องการตั้งเวลาของเครื่องคอมพิวเตอร์ให้ตรงกับเวลาที่ \AD.example.netหรือไม่ (Y / N) [Y]

แน่นอนว่ามันจะไม่ทำงานถ้าคุณอยู่ในAD.example.net, /Yซ่อนเพียงคำถาม

ขั้นตอนใช้งานได้สำหรับฉันโดยใช้ PowerShell:

  1. ตั้งค่าบริการ w32time เป็นไม่น่าเชื่อถือ :
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

ฉันมีอิมเมจ 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:noหรือMaxPosPhaseCorrectionการตั้งค่าหรือคำสั่งอื่น ๆ ที่ระบุไว้ที่นี่ทำงานทันทีในทางที่สามารถทำซ้ำได้

หลังจากอัปเดตรีจิสทรีแล้วให้เริ่มบริการอัปเดตการกำหนดค่าและเริ่มบริการอีกครั้งฉันยังต้องรอหลายนาทีก่อนที่ฉันw32tm /resync /rediscoverจะประสบความสำเร็จ

การทำข้อมูลให้ตรงกันเวลาจะประสบความสำเร็จในที่สุดไม่เพียงในเวลาที่เหมาะสมและเชื่อถือได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.