如何使本机时间与服务器时间同步?
<script language="javascript" type="text/javascript"> function addtitle(){ var straddtitle = "如何使本机时间与服务器时间同步?"; if (straddtitle.length!==0){ document.title=document.title + "《" + straddtitle + "》;专题号:72FAB01E17DCEAF3"; } } </script>
专题地址: http://access911.net/?kbid;72FAB01E17DCEAF3
简述: 如何使本机时间与服务器时间同步?《VBA》
阅读前需掌握: 基本了解 WINDOWS 命令;熟练掌握 VBA 编程
难度等级: <script language="javascript" src="/rewrite.asp?mode=writelevel&l=70" type="text/javascript"> </script>
问题:
如何使本机时间与服务器时间同步? 我将数据库拆分为服务器端和客户端,但是客户端有好多个,如何使所有客户端时间一致呢?我想应该是将所有客户端的时间设定得和服务器同步即可。如何设定呢?
回答:
这里我们只需要用到一个 WINDOWS 命令 NET TIME,语法请参考:
Net time 使计算机的时钟与其他计算机或域的时钟同步。使用不带参数的 net time 显示其他计算机或域的时间。
语法
net time [{
//
ComputerName |
/domain [
:
DomainName ] |
/rtsdomain [
:
DomainName ]}] [
/set ]
net time [
//
ComputerName ] [
/querysntp ] [
/setsntp [
:
NTPServerList ]]
参数
//
computername
指定要检查或要与之同步的服务器的名称。
/domain [
:
DomainName ]
指定要同步时钟的域。
/rtsdomain [
:
domainname ]
指定要与之同步时钟的“可信时间服务器”所在的域。
/set
使计算机的时钟与指定的计算机或域的时间同步。
/querysntp
显示当前为本地计算机或
ComputervNname 所指定的计算机配置的网络时间协议 (NTP) 服务器的名称。
/setsntp [
:
NTPServerList ]
指定本地计算机所使用的 NTP 时间服务器的列表。该列表可以包含
或
,并用空格分开。如果使用多个时间服务器,则必须使用引号引住该列表。
net help
Command
显示指定
net 命令的帮助。
注释
W32tm.exe 是用来同步本地计算机与远程计算机或域的时间的类似命令。由于其灵活性,W32tm.exe 是时间同步的首选方法。有关 W32tm 的详细信息,请参阅“相关主题”。 示例 要显示计算机 CORPDC1 的当前时间,请键入:
net time //CORPDC1
要使计算机的时间与域内的当前时间同步,请键入:
net time /domain /set
格式化图例
格式 含义 斜体 用户必须提供的信息 粗体 用户必须准确键入的要显示的元素 省略号 (...) 在命令行中可多次重复的参数 中括号 ([]) 可选项 大括号 ({});选项用竖线 (|) 分隔。例如:{even|odd} 用户必须从选项集合中选择一个 Courier 字体
代码或程序输出
用下述语句
NET TIME //SERVER_COMPUTERNAME /SET
如果只想获得服务器时间而不想更新,我们可以直接使用该命令将结果输出到一个 TXT 文件,并且读取 TXT 文件即可。
NET TIME //SERVER_COMPUTERNAME > c:/temp.txt
如果要等待输出完成,然后再读取,需要用到有关使 SHELL 命令等待结果的方法,请参考: 如何解决shell执行外部程序的等待问题?(同步/异步)《API》 http://access911.net/index.asp?u1=a&u2=72FAB21E
完整调用某台服务器的时间,并在本机显示的代码如下:
Function ReadTimeFromServer() '以下的 SHELLWAIT 函数是 '《方法二:等待调用外部程序执行完毕》 'http://access911.net/?kbid;72FAB31E '一文中所定义的自定义函数,用于等待 SHELL 执行完毕后再执行下一步。 '你还可以参考:《如何解决shell执行外部程序的等待问题?(同步/异步)》 'http://access911.net/?kbid;72FAB21E
ShellWait "cmd.exe /c NET TIME //comet-2003 > c:/temp.txt", vbHide '注意,如果是要同步的话请调用:ShellWait "cmd.exe /c NET TIME //SERVER_COMPUTERNAME /SET" Dim fs Dim a Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.OpenTextFile("c:/temp.txt", 1) Dim c c = a.readline a.Close Debug.Print c '得到结果为://comet-2003 的当前时间是 2005/4/20 上午 09:49 '然后对 C 做一些判断即可获得指定服务器的当前时间了 Debug.Print CDate(Mid(c, InStr(1, c, "当前时间是") + 5))
End Function
access911.net 原创文章,作者本人对文章保留一切权利。 如需转载必须征得作者同意并注明本站链接