用VBS修改(设置)系统时间和日期

标签: , , ,

那天跟别人聊到 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?

随机文章:

  1. 从Win32程序的主函数WinMain中获取命令行参数
  2. VeryPDF CHM to PDF Converter 2.0 注册码
  3. Python,又见Python
  4. VBS关键字和保留字
  5. 用Python脚本查询纯真IP库QQWry.dat(Demon修改版)

2 条评论 发表在“用VBS修改(设置)系统时间和日期”上

  1. 人都说我老实说道:

    我最喜欢那种没有技术含量的写法了

  2. uufei说道:

    windows7下如何实现脚本修改时间?我试过改不了

留下回复