4

【茶包射手日記】走針的 Windows

 2 years ago
source link: https://blog.darkthread.net/blog/win-click-sync-issue/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【茶包射手日記】走針的 Windows

calendar.svg 2022-07-13 11:59 PM comment.svg 3 eye.svg 3,881

手邊有幾台 Windows 測試主機出現系統時間不準的狀況。主機隸屬同一 AD 網域,理論上會自動向 DC 校時,但這幾台主機時鐘有快有慢,彼此甚至差三分鐘以上(最多到 207 秒),對照 Log 記錄或資料寫入時間變得極為困難,讓我沒法置之不理。

撈過界進場研究了一下,學到新知識,也解決了問題。

處理 Windows 時間同步問題,基本上全靠萬用工具 - w32tmWindows Time Service (W32Time),常用指令如下:

# 查看本機時鐘與校時來源的時差
w32tm /query /status
# 立即與校時來源同步時間
w32tm /resync
# 查看網域 DC 與本機時鐘的時差
w32tm /monitor
# 查看指定 NTP 伺服器與本機時鐘的時差
w32tm /monitor /computers:watch.stdtime.gov.tw
# 設定網域 DC 作為同步來源 (需重啟 W32Time 服務)
w32tm /config /syncfromflags:domhier /update
# 指定 NTP 伺服器作為同步來源 (需重啟 W32Time 服務)
w32tm /config /manualpeerlist:watch.stdtime.gov.tw /syncfromflags:manual /update
# 重啟 W32Time 服務
net stop w32time
net start w32time
# 註冊 W32Time 服務,寫入預設 Registry
w32tm /register 
# 取消註冊 W32Time 服務,清除設定相關 Registry
w32tm /unregister

這幾台機器使用 DC 作為校時來源,W32Time 服務也有執行,理論上會系統時間會定期與 DC 同步,就算沒有,手動執行 w32tm /resysnc 也該被校正。但排除原本設定有誤,我在每台機器重新設定 w32tm /config /syncfromflags:domhier /update 以 DC 為校時來源,重啟 W32Time 服務並 w32tm /resync 後,大部分機器時間已正常(註:當系統時間差異較大時,不會一次調到正確時間,會分次逐步靠攏),但獨獨有一台快了 170 秒,怎麼 resync 都校正不回來。

仔細查看 w32tm /query /configuration 顯示的系統設定,發現一處可疑:

Fig1_637933250388568041.png

問題主機是台 VM,TimeProviders 有個 VMICTimeProviver,Enabled 旗標為 1,我不知道會不會對同步造成影響,但既然要以 DC 時間為準,把它停用可以排除干擾,應該是有益無害。修改 Registry 將 Enabled 改成 0:

Fig2_637933250389301326.png

重啟 W32Time 服務再跑一次 resync,觀察到時間誤差逐漸縮小,走針的 Windows 總算回歸正途。

and has 3 comments

Comments

Post a comment

Comment
Name Captcha 58 - 14 =

Recommend

  • 17

    【茶包射手日記】怪異的 .NET 數學運算溢位錯誤-黑暗執行緒 同事報案,某支提供檔案下載的 ASP.NET 程式,用瀏覽器可正常開啟,但有一支用 HttpWebRequest 存取它的 .NET 程式,原本可以執行,現在則出現 Arithmetic operation resulted in an ove...

  • 11

    【茶包射手日記】IIS 整合式登入 MSSQL 之 AppPool 身分疑雲-黑暗執行緒前天提到我在 IIS 試跑 ASP.NET Core 開源專案 - Kandu,它的資料庫是用 MSSQL,本機跑測試我懶得開帳號,便把連線字串設成 Integrated Security=SSPI 打算走整合式驗證,用 AppPool 的身...

  • 12

    【茶包射手日記】IIS 跑 ASP.NET Core 出現 500.19 0x8007000d 錯誤-黑暗執行緒 低級錯誤一枚。 我玩 ASP.NET Core 多半是跑 VS 偵錯後丟進 Docker 跑,很久沒部署到 IIS,但方法我還記得:Publish、開 AppPool,也記得要設成「沒有受控碼」(No Man...

  • 13

    【茶包射手日記】從 Oracle 改用 MSSQL 出現中文亂碼-黑暗執行緒 將某個老系統的資料來源由 Oracle 換成 MSSQL,遇到一個有意思的狀況。 在 Oracle 與 MSSQL 都有 Schema 完全相同的資料表,資料原本來自 Oracle NVARCHAR,改用 MSSQL 後,部分中文...

  • 13

    【茶包射手日記】偶發型 Oracle Client 版本不相容錯誤-黑暗執行緒同事報案,有個 ASP.NET 網站「偶爾」會出現提供者與 Oracle 從屬版本不相容錯誤。這是 Unmanaged ODP.NET...

  • 8

    【茶包射手日記】錯過開始時間導致 Windows 循環排程無法執行-黑暗執行緒發現 Windows 工作排程器有個出乎我預料的行為。 有個每天 08:00 起每 10 分鐘跑一次到下午 18:00 的 Windows 排程,設定只有在使用者登入時才執行,平日若在 08:00 前登入 Window...

  • 75

    【茶包射手日記】在Windows x64註冊OCX/DLL元件-黑暗執行緒 接獲報案,在Windows 2008註冊OCX失敗。開啟cmd.exe執行regsvr32 boo.ocx時傳回錯誤訊息: The module "c:\windows\system32\boo.ocx” failed to load. Make sure the binary...

  • 7

    【茶包射手日記】SQL Client 與 Windows 4625 登入失敗稽核事件-黑暗執行緒 調查了一起開發測試過程引發 Windows 稽核失敗事件的案例。 本機不小心在 Visual Studio 啟動了某個測試網站專案,在另一個伺服器留下多筆操作登入使用者登入失敗的 Win...

  • 10

    【茶包射手日記】Windows 驗證網站無法自動登入,需每次敲 AD 帳號密碼-黑暗執行緒 使用者反映某個 Windows 驗證網站,原本可以瀏覽器可以用登入 Winows 的 AD 帳號自動登入,後來變成會彈出輸入帳號密碼,需要重新敲帳號密碼。

  • 10

    【茶包射手日記】Windows 11 當機事件 新工作機還在磨合期,今天 Windows 11 22H2 發生無預警重啟。身為資深茶包射手,立即啟動調查 SOP。 檢查事...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK