我要运行基于时间的测试,这些测试需要在测试期间多次更改系统时间。我希望能够在测试结束时将时间重新同步到域控制器时间。我有任何方法可以使用.NET代码(C#)来做到这一点。我正在使用p-invoke函数更改时间,该函数位于:
Set time programmatically using C#
谢谢
发布于 2009-09-24 15:02:25
一种简单的方法是启动一个进程并运行NET TIME命令(从http://blogs.msdn.com/sanket/archive/2006/11/02/synchronizing-machine-time-with-domain-controller.aspx复制)
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
Process netTime = new Process();
netTime.StartInfo.FileName = "NET.exe";
netTime.StartInfo.Arguments = "TIME /domain:mydomainname /SET /Y";
netTime.Start();
}
}发布于 2009-09-24 15:06:43
作为对其他答案的补充:
你应该认真考虑让“当前时间”的概念以某种方式注入到你的系统中。直接从系统时钟读取非常有问题(甚至在运行应用程序时也是如此),这正是因为它是全局状态。
发布于 2009-09-24 15:02:06
您可以使用命令行工具w32tm执行此操作:
w32tm /resync 这既不是C#也不是.NET,但希望它能满足您的需求。
https://stackoverflow.com/questions/1472225
复制相似问题