這里我們只需要用到一個 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?uec=bg&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 |
|