Como posso verificar a configuração atual do NTP de um sistema?

51

Eu preciso verificar a configuração atual do NTP em alguns sistemas Windows. Idealmente, gostaria de poder fazer isso via linha de comando, em vez de navegar pelas telas de configuração.

(Estou trabalhando em várias versões diferentes do sistema operacional, e as telas de configuração tendem a não estar sempre no mesmo lugar nas versões.)

Espero encontrar um comando rápido e memorável que eu possa usar em um console CMD para obter o resultado. Um arquivo de lote que eu possa levar comigo também funcionará bem.

Especificamente, preciso do seguinte:

  • Mostrar se o sistema está ou não configurado para receber tempo de um servidor NTP.
  • Mostrar o (s) servidor (es) NTP do qual o sistema está recebendo tempo.
  • Mostrar a hora da última sincronização.
  • Mostrar a hora atual no sistema.

Que comando (s) seria necessário para alcançar esses resultados?

Procurando uma solução que seja compatível com o Windows XP, 7, Server 2003 e Server 2008.

    
por Iszi 16.05.2012 / 15:22

6 respostas

66

Na linha de comando, digite

w32tm /query /configuration
w32tm /query /status
Time /T 

w32tm /query /configuration fornece a configuração que você configurou.

w32tm /query /status fornece informações como:

  • estrato
  • indicador de salto
  • precisão
  • última sincronização
  • servidor NTP
  • intervalo de sondagem

time /T mostra a hora atual do sistema.

Observação: w32tm /query foi disponibilizado pela primeira vez nas versões do Windows Time client Windows Vista e do Windows Server 2008. Consulte Ferramentas e configurações do serviço de tempo do Windows

    
por 16.05.2012 / 16:39
13

Isso responde à sua última pergunta:

Abra um prompt de comando e digite exatamente:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (quantos retornos você deseja)

Retorna a hora e a diferença para o horário do servidor NTP. Se retornar o tempo, o erro: 0x80072746 então esse não é o seu servidor NTP.

Um exemplo de um comando está abaixo:

    
por 12.07.2016 / 00:30
5

Eu tentei:

w32tm /query /status

Eu tenho:

The command /query is unknown.

Em uma máquina diferente, recebi:

The following error occurred: The service has not been started. (0x80070426)

Então eu tentei:

reg QUERY [\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time

Eu tenho:

ERROR: The system was unable to find the specified registry key or value.

Então eu tentei:

net time /querysntp

Eu tenho:

This computer is not currently configured to use a specific SNTP server.

Em outra máquina, recebi a página de ajuda, dizendo também:

The /QUERYSNTP and /SETSNTP options have been deprecated. Please use w32tm.exe to configure the Windows Time Service.

Então, basicamente, o serviço não estava funcionando. Seguindo estas instruções, eu fiz:

w32tm /unregister
w32tm /unregister
w32tm /register
net start w32time

Finalmente, todos os itens acima funcionariam. (nota: se net start falhar, veja abaixo) Então eu só precisei configurar meu ntp ... Eu fiz isso com:

w32tm /config /manualpeerlist:10.0.0.5 /syncfromflags:manual /reliable:yes /update

seguindo as instruções de aqui , mas talvez pudesse ter sido tão fácil como:

net time /setsntp:10.0.0.5

como instruído aqui . (10.0.0.5 sendo meu servidor NTP local). Se você não estiver usando um servidor NTP local, poderá usar o genérico:

w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:manual /reliable:yes /update

Por fim, talvez seja necessário fazer o seguinte, o que não foi necessário para mim:

w32tm /config /update
w32tm /resync /rediscover

NOTA: Se net start w32time falhar com o erro 1290 (O início do serviço falhou, pois um ou mais serviços no mesmo processo têm uma configuração de tipo de SID de serviço incompatível), siga as etapas aqui :

w32tm /unregister
w32tm /register
sc config w32time type= own
net start w32time

Em seguida, siga como acima.

NOTA 2: se o serviço NTP não iniciar automaticamente na reinicialização, talvez seja devido às suas configurações de inicialização, conforme descrito aqui : dependendo de suas janelas, pode ser configurado para iniciar somente quando ingressar em um domínio. Você pode verificar com:

sc qtriggerinfo w32time

Se estiver configurado para iniciar quando você ingressar em um domínio e você não tiver um domínio configurado em sua máquina, ele não iniciará o serviço nem definirá a hora. Provavelmente não entra em um domínio porque você não quer. Em qualquer caso, basta alterar o gatilho que o inicia. Por exemplo, para iniciar quando a máquina tem rede (e, portanto, é capaz de acessar o servidor), faça:

sc triggerinfo w32time start/networkon stop/networkoff
    
por 13.03.2015 / 23:33
3

Na linha de comando, você pode obter informações como esta:

reg QUERY [\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
reg QUERY [\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config

Parece que deveria ser suficiente, pelo menos, para ir nessa direção, isto é, se eu entendi sua pergunta. AFAIK, o comando 'reg' funciona em todas essas diferentes plataformas contanto que você tenha os serviços certos em execução.

    
por 16.05.2012 / 16:10
3

Uso:

net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"0.it.pool.ntp.org 1.it.pool.ntp.org 2.it.pool.ntp.org 3.it.pool.ntp.org"
net start w32time
w32tm /config /update
w32tm /resync /rediscover

Um arquivo de amostra .bat está no link .

Eu também recomendo este programa: link

    
por 01.03.2016 / 12:37
2

Dê uma olhada na ferramenta de linha de comando w32tm . Ele pode definir e consultar a configuração e reportar um / stripboard do deslocamento de tempo com outro computador.

    
por 16.05.2012 / 16:25