该工具w32tm
可用于配置w32time
服务。最近,我发现即使服务w32time
未运行,原版 Windows 10(未加入域)也会同步其时间。两者均w32tm /query /status
返回w32tm /query /configuration
:
The following error occurred: The service has not been started. (0x80070426)
Get-Service w32time
证实了这一点:
Status Name DisplayName
------ ---- -----------
Stopped w32time Windows Time
但是在 GUI 中,我可以配置时间同步并看到它是否有效:
那么,还有其他w32time
可用的时间服务吗?如果有,如何在不使用 GUI 的情况下配置它?(PowerShell cmdlet、命令行工具、注册表(作为最后的手段)...)
其他发现:
有两个计划任务可能与 GUI 设置相关:
Get-ScheduledTask | ? TaskName -like 'SynchronizeTime*' | Select-Object -ExpandProperty Actions -Property URI
URI : \Microsoft\Windows\Time Synchronization\SynchronizeTime
Id :
Arguments : start w32time task_started
Execute : %windir%\system32\sc.exe
WorkingDirectory :
PSComputerName :
URI : \Microsoft\Windows\Time Zone\SynchronizeTimeZone
Id :
Arguments :
Execute : %windir%\system32\tzsync.exe
WorkingDirectory :
PSComputerName :
上次运行时间似乎是在过去 7 天内(因此非常活跃)。但两个任务都没有定义触发器,因此必须由其他程序来运行它们。
按下“立即同步”按钮不会运行这两项任务中的任何一项。该按钮似乎执行了"C:\WINDOWS\system32\SystemSettingsAdminFlows.exe" ForceTimeSync 1
。
答案1
是的,这是一件无法阻止的事情。您停止 Windows 时间服务或停止自动设置日期时间,时间就会同步。在加入域的计算机中,为了使 Kerberos 身份验证正常工作,这项功能更加严格。因此,作为最后的手段,我认为可以从注册表中删除 NTP 服务器。您可以使用以下 powershell 代码:
Remove-Item -Path "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers"
或者使用 .reg 文件来执行此操作:
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers]