用VBS修改(設(shè)置)系統(tǒng)時(shí)間和日期的代碼
更新時(shí)間:2013年01月13日 23:42:54 作者:
用 VBS 把系統(tǒng)的時(shí)間修改到2038年1月19日3時(shí)14分07秒之后,這樣某些依賴于 Unix 時(shí)間戳的程序就會(huì)出問題。那么怎樣用 VBS 修改系統(tǒng)的時(shí)間呢
那天跟別人聊到 Y2K38 問題,于是想到一個(gè)惡作劇:用 VBS 把系統(tǒng)的時(shí)間修改到2038年1月19日3時(shí)14分07秒之后,這樣某些依賴于 Unix 時(shí)間戳的程序就會(huì)出問題。那么怎樣用 VBS 修改系統(tǒng)的時(shí)間呢?
最簡單也是最沒有技術(shù)含量的方法就是調(diào)用 cmd 的 date 和 time 命令:
'Author: Demon
'Website: http://demon.tw
'Date : 2011/4/27
Dim WshShell
Set WshShell = CreateObject("wscript.Shell")
WshShell.Run "cmd.exe /c date 2038-01-19", 0
WshShell.Run "cmd.exe /c time 3:14:08", 0
比較有技術(shù)含量的方法是用 WMI 的 Win32_OperatingSystem 類的 SetDateTime 方法:
'Author: Demon
'Website: http://demon.tw
'Date : 2011/4/27
dtmNewDateTime = "20380119031408.000000+480" 'UTC時(shí)間
strComputer = "."
Set objWMIService = GetObject("winmgmts:{(Systemtime)}\\" & strComputer & "\root\cimv2")
Set colOSes = objWMIService.ExecQuery("Select * From Win32_OperatingSystem")
For Each objOS In colOSes
objOS.SetDateTime dtmNewDateTime
Next
Windows 7 在開啟 UAC 的情況下需要管理員權(quán)限才能修改時(shí)間,一點(diǎn)也不好玩。
最簡單也是最沒有技術(shù)含量的方法就是調(diào)用 cmd 的 date 和 time 命令:
復(fù)制代碼 代碼如下:
'Author: Demon
'Website: http://demon.tw
'Date : 2011/4/27
Dim WshShell
Set WshShell = CreateObject("wscript.Shell")
WshShell.Run "cmd.exe /c date 2038-01-19", 0
WshShell.Run "cmd.exe /c time 3:14:08", 0
比較有技術(shù)含量的方法是用 WMI 的 Win32_OperatingSystem 類的 SetDateTime 方法:
復(fù)制代碼 代碼如下:
'Author: Demon
'Website: http://demon.tw
'Date : 2011/4/27
dtmNewDateTime = "20380119031408.000000+480" 'UTC時(shí)間
strComputer = "."
Set objWMIService = GetObject("winmgmts:{(Systemtime)}\\" & strComputer & "\root\cimv2")
Set colOSes = objWMIService.ExecQuery("Select * From Win32_OperatingSystem")
For Each objOS In colOSes
objOS.SetDateTime dtmNewDateTime
Next
Windows 7 在開啟 UAC 的情況下需要管理員權(quán)限才能修改時(shí)間,一點(diǎn)也不好玩。
參考鏈接:Hey, Scripting Guy! How Can I Set the Date and Time on a Computer?
來自: http://demon.tw/programming/vbs-modify-system-time.html
相關(guān)文章
vbs TLI.TLIApplication 被遺忘的COM組件
TLI.TLIApplication是一個(gè)能獲取COM組件Type Library Information(類型庫信息)的COM組件。2011-01-01網(wǎng)絡(luò)連接狀態(tài)建立于斷開的VBS腳本
斷開連接提示與建立連接提示實(shí)現(xiàn)代碼。2011-02-02VBS中的標(biāo)識(shí)符(Identifiers)
標(biāo)識(shí)符可以簡單的認(rèn)為就是類名、變量名和過程名。2011-02-02用vbs實(shí)現(xiàn)注冊(cè)表開關(guān)的腳本
注冊(cè)表開關(guān)[以下代碼保存為.vbs]2008-06-06