คำสั่งให้ซิงค์เวิร์กสเตชัน Windows หรือเซิร์ฟเวอร์กับแหล่งเวลาที่กำหนดไว้คืออะไร
คำสั่งให้ซิงค์เวิร์กสเตชัน Windows หรือเซิร์ฟเวอร์กับแหล่งเวลาที่กำหนดไว้คืออะไร
คำตอบ:
อย่างที่ไคล์กล่าวว่าw32tm /resync
เป็นวิธีการที่ทันสมัยในการทำสิ่งนี้ ดูลิงก์นี้ไปยังฐานความรู้ของ Microsoft (KB 307897)สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง w32tm
นอกจากนี้ยังnet time
มีรุ่นเก่า แต่อาจจะง่ายกว่า
w32tm /resync
กล่าวว่า "คอมพิวเตอร์ไม่ได้ซิงค์อีกครั้งเนื่องจากการเปลี่ยนแปลงเวลาที่ต้องการมีขนาดใหญ่เกินไป" เมื่อแบตเตอรี่ CMOS ของฉันหมดและนาฬิกาคอมพิวเตอร์ของฉันจะรีเซ็ตทุกครั้งที่บูตใน 1/1/2000 12:00 AM ความช่วยเหลือใด ๆ
net stop W32Time
จากนั้นลองอีกครั้งw32tm /resync
w32tm /resync /force
ข้อผิดพลาดการใช้งาน net start w32time
แต่ถ้าคุณไม่ได้มีการให้บริการเริ่มต้นทำงาน ทั้งจากพรอมต์ยกระดับ
สำหรับผู้ที่ยังคงถามคำถามนี้อยู่
หากต้องการอัปเดตให้ใช้คำสั่งด้านล่าง (เข้ากันได้กับเซิร์ฟเวอร์ 2008 และ 2012)
w32tm /config /manualpeerlist:"ntp_server" /syncfromflags:manual /reliable:yes /update
เปลี่ยน ntp_server ด้วยซอร์สของคุณ
เริ่มบริการเวลา
net stop w32time
net start w32time
ซิงค์เวลาอีกครั้ง
w32tm /resync
ตรวจสอบสถานะการซิงค์ของคุณ
w32tm /query /status
คำสั่งข้างต้นควรใช้ได้ถ้าแหล่งที่มาของคุณทำงานอย่างถูกต้องและ / หรือการเชื่อมต่อของคุณเป็น OK (ไฟร์วอลล์หรือ Microsoft Forefront อาจเป็นปัญหาได้เช่นกัน) คำสั่งด้านล่างสามารถช่วยแก้ปัญหาได้
เพื่อแสดงรายการเพื่อน
w32tm /query /peers
ในการแสดงรายการแหล่งที่มาของ NTP:
w32tm /query /source
w32tm /monitor /computers:time.windows.com
คุณสามารถใช้คำสั่งต่อไปนี้:
w32tm /resync
คุณสามารถใช้ได้:
w32tm /resync
นอกจากนี้การใช้w32tm /resync /rediscover
จะ"บังคับให้ทำการค้นหาซ้ำของเครือข่ายอีกครั้งก่อนซิงโครไนซ์อีกครั้ง"
หรือใช้:
net time /set
จะแจ้งให้คุณตั้งเวลาเป็น DC (ใช้ได้กับ Windows รุ่นเก่ากว่า)
w32tm /resync
ไม่ทำงานสำหรับฉัน แต่net time /SET /Y
ทำ ฉันใช้/Y
สำหรับnet time
เพราะมันเห็นได้ชัดว่าไม่ได้อ่าน stdin อย่างถูกต้องเมื่อจะผ่าน sshd จาก Cygwin
w32tm /resync
ฉันได้รับข้อความThe computer did not resync because no time data was available.
แม้หลังจากรีสตาร์ทบริการ แต่net time /SET
ทำงานได้อย่างถูกต้องสำหรับฉัน
ระบบปฏิบัติการ: MS Windows 7
ลองทำตามแนวคิดทั้งหมดข้างต้นแล้ว แต่ไม่ได้ผล ปัญหาเดิมยังคงมีอยู่: " คอมพิวเตอร์ไม่ได้ซิงค์อีกครั้งเนื่องจากการเปลี่ยนแปลงเวลาที่ต้องการมีขนาดใหญ่เกินไป "
พบวิธีแก้ไขปัญหาในรีจิสทรี: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ w32time \ Config
(ใช้ 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
MaxNegPhaseCorrection
และ MaxPosPhaseCorrection
ฉันยังคงสนับสนุนให้รวมถึงคำอธิบายว่าการตั้งค่าทั้งสองนี้ทำอย่างไรเนื่องจากเป็นคุณลักษณะที่สำคัญของคำตอบของคุณและเป็นสิ่งสำคัญที่ผู้ดูแลระบบควรทราบว่าหากพวกเขาตั้งค่าเหล่านี้ไว้อย่างถาวรพวกเขาจะกำหนดค่าระบบ ไม่ว่าจะมีขนาดใหญ่เพียงใดซึ่งสามารถทำลาย Kerberos และบริการเครือข่ายสำคัญอื่น ๆ
Powershell หนึ่งซับถ้าเซิร์ฟเวอร์ ntp มีการกำหนดค่า:
gsv w32time | sasv; w32tm /resync /force
คุณสามารถใส่ไฟล์. bat นี้ในการเริ่มต้นหาก CMOS batery ล้มเหลวดังนั้นจึงสามารถซิงค์ใหม่เมื่อเริ่มต้นระบบปฏิบัติการ:
@powrshell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'
/force
w32tm /resync
ไม่ได้เป็นตัวเลือกบรรทัดคำสั่งสำหรับเอกสาร
net start w32time
w32tm /resync
ลองในคำสั่งนี้ ทำงานได้ตลอดเวลา
w32tm /unregister
w32tm /register
net stop w32time
net start w32time
w32tm /resync
แทบไม่มีวิธีแก้ปัญหา (ยกเว้น @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:
w32tm /config /reliable:no /syncfromflags:manual /update
ตัวเลือก/syncfromflags:manual
หมายถึงการซิงค์กับ NTP ที่ระบุไว้ในรายการเพียร์ (เช่น NTP ภายนอก) /update
สำหรับการแจ้งเวลาบริการที่มีการเปลี่ยนแปลงการกำหนดค่า
Stop-Service w32time
Start-Service w32time
w32tm /resync
สิ่งนี้น่าจะใช้ได้
w32tm /config /reliable:yes /update
Stop-Service w32time
Start-Service w32time
ฉันมีอิมเมจ 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
จะประสบความสำเร็จ
การทำข้อมูลให้ตรงกันเวลาจะประสบความสำเร็จในที่สุดไม่เพียงในเวลาที่เหมาะสมและเชื่อถือได้