一臺域內的服務器時間不停地被修改,我先向用戶收集了一些信息windows
只有這一臺出現此問題,其餘服務器均爲正常(補充一下,問題快解決完的時候用戶告訴我一個重要的消息,就是時間被修改了一段時間後自動會被修改回去)服務器
系統版本\服務器用途(考慮是否有軟件會形成此問題)\日誌信息\是否爲虛擬機dom
1.系統版本是Server 2008 數據中心版ide
2.用途就是一臺作圖的服務器spa
3.日誌信息以下圖,這個日誌是系統日誌,事件ID爲1,時間從2016-7-21 00:50:59 被改成.net
2016-07-21 08:32:31debug
4.是Vmware虛擬機3d
5.注意了,是時間一直被修改,並且日誌中的源也判斷不出是誰修改了時間日誌
= = 第一天blog
1)肯定服務器的時間服務是否爲正常啓動
2)查看虛擬機是否和Esxi主機進行了時間同步,沒有勾選的話不會和Esxi主機進行時間同步
3)由於用戶的並非管理域的,我讓用戶詢問了一下DC的IP地址,而後使用net time進行時間同步
以前處理過一個問題也是時間不一樣步,使用了net time後就行了,net time \\ip或者計算機名稱 /set便可,會立馬同步時間
= = 次日
1)次日用戶告訴我時間又被更改了,結合上次的時間更改間隔,其實時間更改是具備規律性的,每7小時41分鐘左右就會進行更改
2)其實net time這條命令很是的雞肋!想要更好地解決方法還須要藉助w32tm命令
在這臺服務器上運行命令,查看此機的NTP服務器列表
w32tm /query/peers
而後修改NTP服務器列表(雙引號中用空格分開)引號中的服務器填寫PDC服務器的FQDN
w32tm /config /manualpeerlist:"SERVER1-FQDN SERVER2-FQND" /update(這裏我設置的是10.138.207.22,FQDN我不能說...)
3)運行以下命令,開啓debuglog。
w32tm/debug /enable /file:c:\w32time.log /size:10000000 /entries:0-116
Debug日誌能夠查看到服務器到底從哪裏同步的時間
另外,若是要更改Debug日誌路徑的話,能夠更改註冊表的值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
= = 第三天
1)時間接着又被修改,以前開啓的Debug日誌這時候便起到了做用,打開Debug日誌後,找啊找,找到三個IP地址
10.142.10.33 新加坡的一臺域控
10.138.207.26 北京的一臺域控
10.138.164.167 本機IP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters下NtpServer的值是time.windows.com,多是這個值形成的問題吧,將它改成34(切記這裏輸入34的FQDN)
2)將此目錄下的註冊表導出
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\
進行分析,×××部分標明的地方所有改成0(就是不生效的意思),系統默認是啓用讀取虛擬機時間的因此須要將其關閉,必須重啓計算機才生效,VMICTimeProvider(虛擬機時間提供源)
3)使用w32tm /query /configuration 命令查看配置
[TimeProviders]
NtpClient (Local)
DllName:C:\Windows\system32\w32time.dll (Local)
Enabled: 1 (Local)
InputProvider: 1(Local)
CrossSiteSyncFlags:2 (Local)
AllowNonstandardModeCombinations:1 (Local)
ResolvePeerBackoffMinutes:15 (Local)
ResolvePeerBackoffMaxTimes:7 (Local)
CompatibilityFlags:2147483648 (Local)
EventLogFlags: 1(Local)
LargeSampleSkew: 3(Local)
SpecialPollInterval:3600 (Local)
Type: NT5DS(Local)
NtpServer: (Undefined or NotUsed)這個是設置本身爲時間服務器,若是你使用以前的w32tm命令設置NtpServer的話,他就會變成你設置的值
= = 第四天
1)接着分析Debug日誌,從日誌信息中能夠看到服務器有兩個時間同步源
兩個源分別是10.138.207.22 另外一個10.142.10.33(新加坡域控)
2)10.142.10.33並非PDC,理論上客戶端不該該和它進行時間同步,由於都沒有手動指定10.33
10.138.207.22,這是咱們以前一直指定的時間同步源,因而讓用戶找人在207.22上運行了netdom query fsmo 查看PDC是否爲207.22,結果PDC是10.34,34也是一臺新加坡的域控也是PDC,207.22和10.33是一個子域
3)時間一直被修改的緣由:由於咱們設置的時間源是207.22,因此他會向207.22進行同步,可是10.34是咱們子域中的PDC主機,域客戶端默認都會向PDC進行時間同步
= = 最終解決
1)難道以前設置34爲NTPServer沒有生效嗎(設置NTPServer)設置一個時間同步源,而本身做爲客戶端去同步時間源
1.w32tm /config /manualpeerlist:PDCFQDN /syncfromflags:manual /reliable:yes /update
2.net stop w32time & net start w32time (重啓服務)
2)查看註冊表下值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters ,看到值已經修改成了PDC的FQDN
3)通過幾天觀察,用戶反饋最近幾天沒有時間被修改的日誌,問題得以解決
= = 總結
1)w32tm /query/peers 查看NTP服務器列表
2)netdom query fsmo 確認PDC主機是哪臺服務器
3)w32tm /config /manualpeerlist:PDCFQDN /syncfromflags:manual /reliable:yes /update
修改時間同步源
4)w32tm/debug /enable /file:c:\w32time.log /size:10000000 /entries:0-116(開啓時間Debug)
5)此次問題解決的難點在於系統莫名其妙的有兩個時間同步源,因此有時候時間被更改了,一段時間後又發現時間恢復了正常,這時候輸入上條命令將PDC設置爲NtpServer後從新啓動w32time服務
若是出現了時間不一樣步問題,按照以上幾點進行排查,相信問題能夠獲得解決