WindowsXPのシステム時刻をNTPで調整する方法
覚書。やや手抜き。
Windowsの自動時刻合わせ機能をONにしてから同期しているので、同期後にOFFにしたいなら第二引数をfalseにする。
このままでは時刻合わせが成功したかどうかは判定できない。
実際はprocessの標準出力と標準エラー出力を処理しないと危険。
public static void syncSystemTime(String ntpServerName) throws Exception { syncSystemTime(ntpServerName, false); } public static void syncSystemTime(String ntpServerName, boolean enableAutoSync) throws Exception { sendCommand("w32tm", "/config", "/update", "/manualpeerlist:" + ntpServerName, "/syncfromflags:manual"); sendCommand("w32tm", "/resync"); if (!enableAutoSync) { sendCommand("w32tm", "/config", "/update", "/syncfromflags:domhier"); } } public static void sendCommand(String... command) throws Exception { ProcessBuilder pb = new ProcessBuilder(command); Process process = pb.start(); process.waitFor(); }