使用Python的subprocess在Windows中更改NTP服务器设置

0 投票
1 回答
757 浏览
提问于 2025-04-17 21:40

我想在Windows(XP和7)中更改ntp服务器的设置,使用的是以下代码:

import subprocess
subprocess.call(['net', 'stop', 'w32time'])
subprocess.call(['reg', 'add','HKLM\Software\Microsoft\Windows\CurrentVersion\DateTime\Servers', '/f /v \"0\" /t REG_SZ /d \"ntp.craven.k12.nc.us\"'])
subprocess.call(['reg', 'add', 'HKLM\Software\Microsoft\Windows\CurrentVersion\DateTime\Servers', '/f /v \"(Default)\" /t REG_SZ /d \"0\"'])
subprocess.call(['net', 'start', 'w32time'])
subprocess.call(['w32tm', '/resync'])

但是这个方法完全失败了。我确定问题出在我设置参数的方式上,但我还没找到正确的做法。

1 个回答

2

你最后的参数没有被分开。你可能需要把 '/f /v \"0\" /t REG_SZ ...' 替换成 ] + ['/f', '/v', '0', '/t', 'REG_SZ'] + [...] 这样的格式。

另外,你也可以把整个命令作为一个字符串传递(就像在命令行中输入一样)。

撰写回答