バッチファイルを使って時刻同期をする
ちょいとメモ
/// <summary> /// 時刻同期を行うクラスです。 /// </summary> public static class SyncMachineTime { private const string WorkFolder = @"C:\work\"; private const string BatFilePath = WorkFolder + "SyncNetTime.bat"; /// <summary> /// 時刻同期を実行する。 /// 時刻を取得するホストが存在しない場合、例外はスローされません。 /// </summary> /// <param name="hostNo">接続先ホストNo</param> public static void Execute(int hostNo) { // 実行するコマンドを作成 string hostName = getHostName(hostNo); if (string.IsNullOrEmpty(hostName)) return; string command = "net time " + hostName + " /set /y "; try { // バッチファイルを作成 System.IO.File.WriteAllText(BatFilePath, command); // バッチファイルを実行 var psInfo = new System.Diagnostics.ProcessStartInfo(); psInfo.FileName = BatFilePath; // 実行するファイル psInfo.CreateNoWindow = true; // コンソールウィンドウを表示しない psInfo.UseShellExecute = false; // シェル機能を使用しない var ps = System.Diagnostics.Process.Start(psInfo); ps.WaitForExit(); } catch { // 例外発生時は何もしない } finally { // 作成したバッチファイルを削除する System.IO.File.Delete(BatFilePath); } } private static string getHostName(int hostNo) { switch (hostNo) { case 1: return ##########; case 2: return ##########; case 3: return ##########; default: return null; } } }