解决方案作为程序

解决方案作为程序

我正在测试一些对日期敏感的软件。为了完成一些任务,我必须在测试中数百次更改测试机器的日期和时间。我在服务中禁用了 W32Time,将“自动设置时间”设置为“关闭”,但我的机器偶尔会将日期/时间更正为今天的日期和时间。

我错过了什么?

答案1

您的测试系统是物理的还是虚拟的?如果是虚拟的,您还需要禁用 VM 实例属性上的时间同步,否则 vmTools 或 HyperV 集成服务会同步客户机上的时间。

答案2

(不确定我是否应该编辑我的第一个答案,或者发布另一个答案)

还,这一页建议从注册表中删除 DateTime 服务器列表。这似乎有点极端,但可能有效。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers

请务必先导出列表作为备份!

Regedit 导出(屏幕截图)

编辑:如果您的计算机属于域的一部分,您将无法更改日期时间,因为它由域控制。另外,如果您尝试在脚本或程序中更改日期/时间,你需要以管理员身份运行它。 [信息]

解决方案作为程序

作为练习,我决定快速编写一个程序,每秒强制执行日期、日期和时间或日期偏移。当程序退出时,它会恢复日期和时间。虽然这不是问题的直接解决方案,但它确实解决了您遇到的不良行为。

答案3

根据这一页,还有一个可以更改的注册表设置。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters] "Type"="NoSync"

答案4

您的系统是私人使用的计算机还是连接到网络并由某些系统管理员管理的计算机?也许您的公司政策或管理设置会覆盖您当时所做的更改。

相关内容