获取局域网内服务器上的时间
想知道用wmi或者api怎么写能得到局域网内服务器上的时间..net time这样的命令不要去用了..
谁能帮下忙
[ 本帖最后由 木纳 于 2008-7-10 11:45 编辑 ] 天,,哪位大大出来帮个手哇... 源码区 有个时间同步软件,很COOL,可以下载分析下代码,也许有用!!!:face (7): 原帖由 abowan 于 2008-5-12 21:29 发表 http://www.autoitx.com/images/common/back.gif
源码区 有个时间同步软件,很COOL,可以下载分析下代码,也许有用!!!:face (7):
说句实话,那个不是很看得懂 其实我也需要,要是简单点就好了, 那个看了的,局域内如果有台机子可以用来代替公网上某台时间服务器,可以解决下带宽不够的问题。
想想,要是内网有500台机,每台经过网关去公网上对比时间,不是很麻烦.
要是内网有台,可以提供这样的服务,且不用什么net time之类,直接可以用au3可以实现,不就方便了..
期待高手出现~! 你可以在服务器开个可写的共享。
然后就可以获取时间了呀。
以前的火狐就是用这个办法获取时间的 开了共享,问题是不用net time或者第三方来获取时间.
苦于找不到怎么做,谁帮下手看看 $ip = IniRead("time.ini", "时间", "服务器IP", "NotFound")
RunWait(@ComSpec & " /c " & 'net time \\& $ip /set /y', "", @SW_HIDE)
帮忙指导下
RunWait(@ComSpec & " /c " & 'net time \\& $ip /set /y', "", @SW_HIDE)
正确的写法该是什么样子的!
《time.ini》内容
[时间]
服务器IP=192.168.0.250 回9楼的兄弟
#NoTrayIcon
$syspatchtime = IniRead(@ScriptDir & "\config.ini", "SYStime", "Time", "")
$TYPE06 = IniRead(@ScriptDir & "\config.ini", "SYStime", "On", "")
$nettime = 'net time'
$nettime2 = '/set /y'
If $TYPE06 = 1 Then RunWait(@ComSpec & ' /c ' & "" & $nettime & " " & $syspatchtime & " " & $nettime2 & "", "", @SW_HIDE)
exit
config.ini文件..(on是个开关,如果为0,就不对比时间;为1,进行时间对比)
On=1
Time=\\192.168.0.250
================================================
这个用到net time命令的..
谁能帮忙解决下,怎么不用net time命令或第三方软件,可以获取到192.168.0.250主机上的时间呢? 有简单的为什么不用?真想不明白。。。NET TIME多么简单洁啊。
1分钟可以做好的工作,非要1天或者更长的时间去实现,难道这就体现了技术吗? 看来我说的不够仔细
你可以开个完全共享。
然后再里面新建文件夹,然后再获取文件夹的创建时间,这个也就是服务器的时间了。 :face (9):
虽然居士批评的俺接受,但还是想知道,如果能不借助第三方软件,就能获取到主机上的时间,更能提高俺学习autoit的兴趣. 谢谢10楼的 同志!:face (36):
还有11的居士说的很对 NET TIME就能解决的问题为什么要弄的那么复杂呢!
[ 本帖最后由 59993330 于 2008-5-15 16:48 编辑 ] 可能需要权限,修改$strComputer为远程计算机名即可。
; 生成于 AutoIt Scriptomatic
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$Output=""
$Output = $Output & "Computer: " & $strComputer& @CRLF
$Output = $Output & "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_UTCTime", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
For $objItem In $colItems
$Output = $Output & "Day: " & $objItem.Day & @CRLF
$Output = $Output & "DayOfWeek: " & $objItem.DayOfWeek & @CRLF
$Output = $Output & "Hour: " & $objItem.Hour & @CRLF
$Output = $Output & "Milliseconds: " & $objItem.Milliseconds & @CRLF
$Output = $Output & "Minute: " & $objItem.Minute & @CRLF
$Output = $Output & "Month: " & $objItem.Month & @CRLF
$Output = $Output & "Quarter: " & $objItem.Quarter & @CRLF
$Output = $Output & "Second: " & $objItem.Second & @CRLF
$Output = $Output & "WeekInMonth: " & $objItem.WeekInMonth & @CRLF
$Output = $Output & "Year: " & $objItem.Year & @CRLF
if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
$Output=""
Next
Else
Msgbox(0,"WMI 输出","No WMI Objects Found for class: " & "Win32_UTCTime" )
Endif