我最近将公司迁移到了 Active Directory。它附带一个默认设置,将强制启用时间同步。
问题是,有些用户需要更改他们的日期时间设置以进行测试,但自动同步将恢复实际时间值。禁用时间同步的选项呈灰色。相关用户是受信任的,并且是其计算机上本地管理员组的成员。
我曾尝试找到一种方法让用户随意启用和禁用此设置,但我只找到了全局启用/禁用。
我想知道是否可以将此设置(启用/禁用时间同步)留给用户自行决定。
谢谢大家
编辑更精确:用户有修改系统时间的权限(GPO 中定义的权利)。用户是可以更改时间,但几分钟后会自动改回。我希望禁用此行为。禁用 Windows 时间服务 (w32time) 不起作用。
答案1
正如@MDMarra 指出的那样,使用虚拟机是一种很好的方法,因为阻止时间同步能会对身份验证、TLS 证书有效性等造成严重问题。然而,对于真正的测试,你可能将要想要在加入域的机器上测试这一点,就像在“真实世界”中一样。无论哪种方式,熟悉 Windows 域中的时间设置配置总是有帮助的。
内置W32TM命令应该是您挑战的答案。以下两个命令字符串将阻止您的测试机器自动重置其时间:
w32tm /config /syncfromflags:no /update
net stop w32time && net start w32time
要在测试完成后恢复正常运行,请运行以下两个命令字符串:
w32tm /config /syncfromflags:domhier /update
net stop w32time && net start w32time
这将告诉计算机从 Active Directory 域控制器同步其时间,然后重新启动时间服务。
其他参考资料:
编辑附加信息: 这些命令假设问题已经陈述的内容——运行命令的人具有本地管理员权限。
我也会借用另一个人的建议极好的旧金山问答关于配置时间。这是现在社区 wiki 上的答案的直接引用:
9.如果您之前一直在使用 Windows 时间服务,或者您从其他人那里继承了此网络,那么在开始重新配置之前将 w32time 重置为默认设置可能是一个好主意。从 PDCe 开始,在您的域控制器上运行以下命令。
net stop w32time w32tm /unregister <-- If you get an Access Denied message, reboot. w32tm /register net start w32time
我建议您在运行这些命令后重新启动服务器 1-2 次,并确保 Windows 时间服务存在、设置为自动并已启动。我曾见过 /unregister 命令直到下次重新启动才生效的情况。然后,当您在执行 Windows 修补程序后重新启动时,您会感到惊讶,w32time 服务突然消失了!
答案2
你确实不想这么做。时间同步对于 Kerberos 正常运行至关重要。除非您希望身份验证失败,否则您将保留系统时钟不变。
也许在客户端 Hyper-V 内部运行的非域加入的 VM 是更好的解决方案。