那天跟别人聊到 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获取当前日期的前一天 并修正输出格式