ซิงโครไนซ์เวลาอินเทอร์เน็ตในสคริปต์ Windows หรือไม่


12

มีวิธีที่ฉันสามารถซิงโครไนซ์นาฬิการะบบกับเซิร์ฟเวอร์เวลาอินเทอร์เน็ต (เช่น: time.nist.gov) ผ่านทางบรรทัดคำสั่งหรือไม่ ควรเป็นสิ่งที่เรียกใช้งานได้ผ่านสคริปต์ BAT หรือ PowerShell

ความต้องการพิเศษนี้เกิดขึ้นเพราะฉันมี VM บางตัวที่ฉันใช้ฟังก์ชั่น "save machine state" เป็นประจำและโดยทั่วไปแล้วสิ่งเหล่านี้จะไม่ซิงโครไนซ์นาฬิกาของพวกเขาอีกครั้งเมื่อฉัน "ปลุก" พวกเขา บ่อยครั้งที่ฉันจะโหลดพวกเขาอีกครั้งเพื่อหาเวลา (และอยู่) วันที่ไม่ได้ซิงค์

การซิงก์นาฬิกาใหม่ผ่านทางกล่องโต้ตอบการตั้งค่าเวลาอินเทอร์เน็ตมักจะใช้งานได้ดี แต่การคลิกเมาส์ทำได้หลายครั้ง ฉันค่อนข้างจะเก็บสคริปต์ไว้บนเดสก์ท็อปที่ฉันสามารถดับเบิลคลิกและทำงานให้ฉันได้

ตอนนี้สำหรับระบบที่ใช้ Windows 7 Home x64 แต่ความเข้ากันได้แบบย้อนหลังกับ XP SP3 น่าจะดีกว่า


1
ซอฟต์แวร์ VM ส่วนใหญ่ (Virtual PC, VirtualBox) มาพร้อมกับไดรเวอร์ ("ส่วนเพิ่มเติม") ที่ทำให้นาฬิกาของผู้เข้าพักซิงค์กับโฮสต์เหนือสิ่งอื่นใด
user1686

@grawity - ใช้สิ่งเหล่านั้น แต่ดูเหมือนจะไม่ทำงาน
Iszi

ฉันสร้างบั๊กตั๋วสำหรับสิ่งนี้ Windows ไม่สามารถซิงค์กับเซิร์ฟเวอร์เวลาเมื่อดำเนินการต่อจากโหมดสลีปหรือไฮเบอร์เนต Windows URI: feedback-hub:?contextid=58&feedbackid=f15278d4-b20d-4a9a-9693-cdf8fbaaa669&form=1&src=1<- วางลงในกล่องโต้ตอบ Windows Run หากคุณติดตั้ง feedback-hub จาก windows store
Gabriel Fair

คำตอบ:


13

ดูอ้างอิงสำหรับ w32tm "เครื่องมือที่ใช้ในการวินิจฉัยปัญหาที่เกิดขึ้นกับ Windows เวลา": http://technet.microsoft.com/en-us/library/bb491016.aspx นอกจากนี้w32tm /?

w32tm /resyncใช้ คุณอาจต้องตั้งค่าเซิร์ฟเวอร์ด้วยnet timeหากคุณยังไม่ได้ดำเนินการ


2
ตกลงฉันทำ ... @echo off && w32tm /resync && PAUSEโยนไฟล์นั้นในไฟล์ BAT และตั้งทางลัดบนเดสก์ท็อปด้วยการเลือก "เรียกใช้ในฐานะผู้ดูแลระบบ" ขอบคุณ!
Iszi

ใน Windows 7 เมื่อฉันทำสิ่งนี้ฉันจะได้รับ:The following error occurred: The service has not been started.
ผู้ใช้

@echo off && w32tm / resync - คำสั่ง propmpt บอกว่ามันไม่รู้จักคำสั่ง (w32tm)
Arpit Parekh

.. คำสั่งที่ฉันไม่สามารถเรียกใช้บน windows 7
Arpit Parekh

1
@DeepakKamat คุณอาจต้องใช้ Windows Services (พิมพ์ "services.msc" ในช่องเรียกใช้หรือค้นหา) เลื่อนลงเพื่อค้นหาเวลาของ Windows คลิกขวาที่มันและเลือกคุณสมบัติ คุณสามารถตั้งค่าประเภทการเริ่มต้นให้เป็นอัตโนมัติ
Kirk Liemohn

1
@echo off
net start W32Time
w32tm /resync
echo sync complete
  1. คัดลอกรหัสนี้ไปยัง Notepad และบันทึกเป็น.batไฟล์
  2. รันไฟล์แบตช์ด้วยสิทธิ์ของผู้ดูแลระบบหรือกำหนดเวลางานเพื่อเรียกใช้ไฟล์แบตช์นี้จากตัวกำหนดเวลางานตามที่ต้องการ

หมายเหตุ: จำเป็นต้องใช้สิทธิ์ผู้ดูแลระบบและการเชื่อมต่ออินเทอร์เน็ตที่ใช้งานได้


0

ฉันเคยทำมันด้วยคำสั่ง net

สำหรับ ntp

เวลาสุทธิ ntp.server.foo

สำหรับ windows

เวลาสุทธิ \\ เซิร์ฟเวอร์

ฉันจำไม่ได้ว่าคุณต้องการแฟล็ก / ntp บางอย่างสำหรับ ntp หรือไม่ ... มันจะบอกคุณถ้าคุณทำ

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