【摘要】服务器
运维管理员每每须要按期查看客户端的时间同步状况,与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进行后续筛选处理。