用VBS修改(設定)系統時間和日期的程式碼

NO IMAGE

那天跟別人聊到 Y2K38 問題,於是想到一個惡作劇:用 VBS 把系統的時間修改到2038年1月19日3時14分07秒之後,這樣某些依賴於 Unix 時間戳的程式就會出問題。那麼怎樣用 VBS 修改系統的時間呢?

最簡單也是最沒有技術含量的方法就是呼叫 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

比較有技術含量的方法是用 WMI 的 Win32_OperatingSystem 類的 SetDateTime 方法:
複製程式碼 程式碼如下:
‘Author: Demon
‘Website: http://demon.tw
‘Date : 2011/4/27
dtmNewDateTime = “20380119031408.000000 480” ‘UTC時間
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 的情況下需要管理員許可權才能修改時間,一點也不好玩。

參考連結:Hey, Scripting Guy! How Can I Set the Date and Time on a Computer?

來自: http://demon.tw/programming/vbs-modify-system-time.html

您可能感興趣的文章:

用VBSrcipt判斷是否是日期用vbs實現按建立日期的順序列出一個資料夾中的所有檔案用vbs判斷一個日期是否在指定的時段內用vbs實現的簡單的伺服器檔案備份辦法壓縮檔名自動按日期命名vbs下通過日期查詢資料夾的程式碼VBS的字串及日期操作相關函式vbs獲取當前時間日期的程式碼使用VBS獲取當前日期的前一天 並修正輸出格式