http://support.microsoft.com/kb/314090/zh-cn
不过这是一种依赖于外部协议、进程的方式。如果你自己的应用程序需要同步时间,最好自己在应用中实现相应的功能。通常只应该比较时间,而不应该随便修改人家的机器时间。

解决方案 »

  1.   

    sorry,更新一下,
    整个过程通过应用程序实现,
    即在一个服务器上运行该应用程序,然后监控其他服务器的时间是否与当前服务器的时间误差是否在可接受范围内,当超出范围时,应用程序将该异常服务器举报出来。
      

  2.   

    那还不如做个ntp server来保持同步
    否则我就需要在client安装一个时间获取的service,不断上报自己的时间给服务器去判断,可以走http protocol
      

  3.   


    谢谢先,在client端建立举手的方式跟容易实现,但是服务器更换相对较为频繁,这样维护起来非常容易忽略,
    此外,此处无需同步,只需监测各个服务器的时间状况即可呀。
      

  4.   


    在你使用 net time 命令时,不要设置 .set 参数,那么你就仅仅是读取时间,而不会去设置时间了。这个命令当然也可以使用.net程序来启动进程来执行,你可以从新的进程的标准输出设备上读取时间值。
      

  5.   

    我上面已经说过,更好的设计思路,是你的server也提供一种(或者多种)服务来返回它自己的时间。如果你不了解任何进程通讯知识,那么就算了。
      

  6.   


    你果然厲害,連我不會進程間通訊都發現了,謝謝賜教,如下代碼請指點,謝謝先 Process pNet = new Process();
     pNet.StartInfo.FileName = "net";
     pNet.StartInfo.RedirectStandardOutput = true;
     pNet.StartInfo.UseShellExecute = false;
     pNet.StartInfo.RedirectStandardInput = false;
     string processOutput = string.Empty;
     foreach (string s in ipList)
     {
          pNet.StartInfo.Arguments = @"time \\" + s.Substring(s.IndexOf(',') + 1);
          pNet.Start();
          processOutput = pNet.StandardOutput.ReadLine();
          Console.WriteLine("ServerName:{0}  IP:{1}   Time:{2}"
              , s.Substring(0, s.IndexOf(','))
              , s.Substring(s.IndexOf(','))
              , processOutput.Substring(processOutput.IndexOf("2012")));
     }