La herramienta w32tm
se puede utilizar para configurar el w32time
servicio. Recientemente, descubrí que un Windows 10 estándar (no unido a un dominio) sincroniza su hora, incluso si el w32time
servicio no se está ejecutando. Ambos w32tm /query /status
y w32tm /query /configuration
regresar:
The following error occurred: The service has not been started. (0x80070426)
Get-Service w32time
confirma esto:
Status Name DisplayName
------ ---- -----------
Stopped w32time Windows Time
Pero en la GUI, puedo configurar la sincronización horaria y ver que funciona:
Entonces, ¿hay algún otro servicio horario además del w32time
disponible? Si es así, ¿cómo puedo configurarlo sin utilizar la GUI? (cmdlets de PowerShell, herramientas de línea de comandos, registro (como último recurso),...)
Hallazgos adicionales:
Hay dos tareas programadas que pueden correlacionarse con la configuración de la 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 :
El último tiempo de ejecución parece ser en los últimos 7 días (por lo que es bastante activo). Pero ambas tareas no tienen un desencadenante definido, por lo que algo más tiene que ejecutarlas.
Al presionar el botón "Sincronizar ahora" no se ejecuta ninguna de las dos tareas. El botón parece ejecutarse "C:\WINDOWS\system32\SystemSettingsAdminFlows.exe" ForceTimeSync 1
.
Respuesta1
Sí, es algo bastante imparable. Si detiene el servicio de hora de Windows o deja de configurar la fecha y hora automáticamente, la hora se sincronizará. En las computadoras unidas a un dominio, esto es más estricto para que la autenticación Kerberos funcione correctamente. Entonces, como último recurso, pienso eliminar los servidores NTP del registro. Puedes usar este código de PowerShell:
Remove-Item -Path "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers"
O un archivo .reg para hacer esto:
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers]