【摘要】服務器
運維管理員每每須要按期查看客戶端的時間同步狀況,與NTP服務器的時間誤差。奈何數量衆多,若不借助第三方工具是否有辦法批量獲取時間差呢?本文將介紹如何簡單使用命令解決問題。運維
【正文】dom
針對遠程批量收集客戶端時間問題,能夠借用psexec.exe工具(下載連接:http://technet.microsoft.com/en-us/Sysinternals/bb897553.aspx),原理是遠程登陸到目標計算機而後運行命令行,方法以下(注:如下[括號中內容]爲須要根據實際狀況修改內容,並注意實際中不須要輸入[括號]):ide
1. 在域內NTP服務器上運行cmd,導航到psexec.exe路徑下,例如e:\;工具
2. 建立一個計算機清單,如e:\pc.txt,裏面包含須要遠程的計算機IP地址,格式爲一行一個便可:命令行
192.168.0.1excel
192.168.0.2token
……ip
3. 建立用於存儲結果的文檔,如e:\time.txt;文檔
4. 方法一:運行命令(遠程得到主機名以及時間,反饋到發起計算機本地time.txt中):
e:\psexec @[e:\pc.txt] cmd /c "hostname & net time \\localhost" >[e:\time.txt]
(不添加用戶與密碼參數則自動使用當前權限)
或者:
e:\psexec –u [domainname\username] –p [password] @[e:\pc.txt] cmd /c "hostname & net time \\localhost" >[e:\time.txt]
(添加對清單計算機都有訪問權限的用戶名和密碼)
完成後在本地e:\time.txt能夠看到全部結果,並利用excel進行後續篩選處理
5. 方法二:運行命令(得到與指定NTP服務器的時間誤差,反饋到發起計算機本地time.txt中):
e:\psexec –u [domainname\username] –p [password] @[e:\pc.txt] cmd /c " w32tm /stripchart /computer:[NTPServer] /samples:1 /dataonly & hostname " >[e:\time.txt]
完成後在本地e:\time.txt能夠看到全部結果,並利用excel進行後續篩選處理
在域內NTP服務器上使用for…do…語句,目的是循環讀取pc.txt中的計算機清單而後逐個對比當前計算機的時間誤差,最後附加地寫入到time.txt中:
For /F "tokens=1" %a in ([e:\pc.txt]) do (w32tm /stripchart /computer:%a /samples:1 /dataonly & hostname) >>[e:\time.txt]
完成後在本地e:\time.txt能夠看到全部結果,並利用excel進行後續篩選處理。