none
Script para acertar horario das maquinas RRS feed

  • Pergunta

  • Pessoal tenho uma rede Com servers 2003 e estações XP, gostaria de saber como faço para que todas as maquinas sincronizem seus relogios com um dos meus servidores .

    tentei rodar uma bat via GPO que fazia o seuinte "net time \\<servidor> /setsntp:<servidor> /set /yes" mas não rolou pq as maquinas estão com a checkbox do horario de verão selecionada, se eu removo a opção das maquinas funiona, pergunta como posso fazer para que todas as maquinas removam esse checkbox via script

    pensei nisso ve se da certo

    ; Função DesabilitaCheckboxHorariodeVerao(), Desabilita o checkbox de horário de verão das estações
    FUNCTION DesabilitaCheckboxHorariodeVerao()
      $regkey = ReadValue(”HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation”,”DisableAutoDaylightTimeSet”)
       $valoratual = “1″

      IF $regkey <> $valoratual
        WriteValue(’HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation’,'DisableAutoDaylightTimeSet’,'$valoratual’,'REG_DWORD’)
      ENDIF
    ENDFUNCTION

    Abraço
    quarta-feira, 18 de outubro de 2006 14:11

Respostas

  • Olá,


    a solução recomendada pela Microsoft é corrigir as datas de início e término do horário de verão nas máquinas. Existem várias maneiras de se fazer isso... e uma delas é com script. Desenvolvi um (que está publicado no meu blog), mas há outras bem interessantes... uma delas foi publicada pelo Bruno aqui mesmo no fórum.

    []s,


    Vinicius Canto
    MVP Visual Developer - Scripting
    Bach. Ciencias da Computação - USP São Carlos

    Blog sobre Scripting: http://viniciuscanto.blogspot.com
    quarta-feira, 18 de outubro de 2006 14:32
    Moderador
  • Bom, lá tem todas as instruções... mas é um VBS. Basta criar um arquivo texto com extensão .vbs no final. Arquivos desse tipo são executados pelo Windows Script Host.

    []s,

    Vinicius Canto
    MVP Visual Developer - Scripting
    Bach. Ciencias da Computação - USP São Carlos

    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    quarta-feira, 18 de outubro de 2006 22:18
    Moderador
  • Olá Diego,

    O processo de sincronização de tempo em redes com Active Directory é completamente automático para todas estação sistema Windows 2000 ou superior. Nesse KB tem uma explicação detalhada de como funciona esse processo: http://support.microsoft.com/kb/816042/pt-br
    Nas estações com Windows 9x você pode usar a seguinte linha no script de logon:
    net time \\<servidor-de-rede> /set /y

    O problema que você parece estar tendo é de configurações de horário de verão desatualizadas.
    O procedimento que tenho implementado nos ambientes semelhantes ao seu é uma GPO linkada no domínio, atualizando as configurações de horário de verão através do utilitário timezone.exe. Usei essa solução quando chamava o timezone.exe pelo script de logon nas estações de usuários sem direitos de administrador o processo falhava por falta de direitos de escrita no registro.
    Há um KB específico sobre configuração de horário de verão que pode ser útil:
    Como configurar as datas de horário de verão para o Brasil
    http://support.microsoft.com/kb/317211/pt-br

    Ha ... a MS lançou um patch que atualiza os dados de horário de verão no XP e no 2003:
    Atualização cumulativa de fuso horário de fevereiro de 2007 para os sistemas operacionais do Microsoft Windows
    http://support.microsoft.com/kb/931836
    Se você só tem estações XP, basta garantir que este patch esteja instalado em todos computadores.
    quinta-feira, 1 de março de 2007 16:54
  • Bom Dia,

    Segue, fonte: http://technet.microsoft.com/pt-br/library/dd347580.aspx

    Altera a hora do sistema no computador para uma hora especificada por você.

    Sintaxe

    Set-Date [-Adjust] <TimeSpan> [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Confirm] [-WhatIf] [<CommonParameters>]
    
    Set-Date [-Date] <DateTime> [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Confirm] [-WhatIf] [<CommonParameters>]
    
    

    Descrição

    O cmdlet Set-Date altera a data e a hora do sistema no computador para a data e a hora especificadas por você. Você pode especificar uma nova data e/ou hora digitando uma cadeia de caracteres ou passando o objeto DateTime ou TimeSpan para Set-Date. Para especificar uma nova data ou hora, use o parâmetro Date. Para especificar um intervalo de alteração, use o parâmetro Adjust.

    Parâmetros

    -Adjust <TimeSpan>

    Adiciona ou subtrai o valor especificado da atual data e hora. Você pode digitar um ajuste no formato de data e hora padrão para sua localidade ou usar o parâmetro Adjust para transmitir um objeto TimeSpan de New-TimeSpan para Set-Date.

     

    Necessário?

    true

    Posição?

    1

    Valor padrão

    Aceitar entrada do pipeline?

    true (ByPropertyName)

    Aceitar caracteres curinga?

    false

    -Date <DateTime>

    Altera a data e a hora para os valores especificados. Você pode digitar uma nova data no formato de data abreviada e uma hora no formato de hora padrão para sua localização. Outra opção é transmitir um objeto Date-Time de Get-Date.

    Se você especificar uma data, mas não uma hora, o Set-Date irá alterar a hora para meia-noite na data especificada. Se você especificar somente uma hora, ele não irá alterar a data.

     

    Necessário?

    true

    Posição?

    1

    Valor padrão

    Aceitar entrada do pipeline?

    true (ByValue, ByPropertyName)

    Aceitar caracteres curinga?

    false

    -DisplayHint <DisplayHintType>

    Determina quais elementos da data e hora serão exibidos.

    Os valores válidos são:

    -- date: exibe somente a data

    -- time: exibe somente a hora

    -- datetime: exibe a data e a hora

    Esse parâmetro afeta somente a exibição. Ele não afeta o objeto DateTime que o Get-Date recupera.

     

    Necessário?

    false

    Posição?

    named

    Valor padrão

    Aceitar entrada do pipeline?

    false

    Aceitar caracteres curinga?

    false

    -Confirm

    Solicita confirmação antes da execução do comando.

     

    Necessário?

    false

    Posição?

    named

    Valor padrão

    Aceitar entrada do pipeline?

    false

    Aceitar caracteres curinga?

    false

    -WhatIf

    Descreve o que aconteceria se você executasse o comando, sem executá-lo de fato.

     

    Necessário?

    false

    Posição?

    named

    Valor padrão

    Aceitar entrada do pipeline?

    false

    Aceitar caracteres curinga?

    false

    <CommonParameters>

    Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulteabout_Commonparameters.

    Entradas e saídas

    O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

     

    Entradas

    System.DateTime

    Você pode canalizar uma data para Set-Date.

    Saídas

    System.DateTime

    Set-Date retorna um objeto que representa a data estabelecida.

    Observações

    Use esse cmdlet com cautela ao alterar a data e a hora no computador. A alteração pode impedir que o computador receba eventos abrangentes do sistema e atualizações acionadas por data ou hora. Use os parâmetros -WhatIf e -Confirm para evitar erros.

    Você pode usar métodos .NET padrão com os objetos DateTime e TimeSpan usados com Set-Date, como AddDays, AddMonths e FromFileTime. Para obter mais informações, consulte "DateTime Methods" e "TimeSpan Methods".

    Exemplo 1

    C:\PS>Set-Date -Date (Get-Date).AddDays(3)
    
    Descrição
    -----------
    Este comando adiciona três dias à data atual do sistema. Ele não afeta a hora. Este comando usa o parâmetro Date para especificar a data. Ele usa o cmdlet Get-Date para obter a data e a hora atuais e aplica o método .NET AddDays para objetos DateTime com um valor de 3 (dias).
    
    
    
    
    
    
    
    

    Exemplo 2

    C:\PS>set-date -adjust -0:10:0 -displayHint time
    
    Descrição
    -----------
    Este comando define a hora atual do sistema com um atraso de 10 minutos. Ele usa o parâmetro Adjust para especificar um intervalo de alteração e a alteração de hora (menos 10 minutos) no formato de hora padrão para o local. O parâmetro DisplayHint avisa o Windows PowerShell para que ele exiba somente a hora, mas não afeta o objeto DateTime que Set-Date retorna.
    
    
    
    
    
    
    
    

    Exemplo 3

    C:\PS>$t = get-date
    
    C:\PS>set-date -date $t
    
    Descrição
    -----------
    Esses comandos alteram a data e a hora do sistema no computador para a data e a hora salvas na variável $t. O primeiro comando obtém a data e a armazena em $t. O segundo comando usa o parâmetro Date para transmitir o objeto DateTime em $t para o cmdlet Set-Date.
    
    
    
    
    
    
    
    

    Exemplo 4

    C:\PS>$90mins = new-timespan -minutes 90
    
    C:\PS>set-date -adjust $90mins
    
    Descrição
    -----------
    Esses comandos antecipam a hora do sistema no computador local em 90 minutos. O primeiro comando usa o cmdlet New-Timespan para criar um objeto TimeSpan com um intervalo de 90 minutos e, em seguida, salva o objeto TimeSpan na variável $90mins. O segundo comando usa o parâmetro Adjust de Set-Date para ajustar a data pelo valor do objeto TimeSpan na variável $90mins.
    
    
    
    
    
    
    
    

    Abs



    * Ajude a organizar melhor o Fórum, dando Feedback sobre a dúvida solicitada, e marcando como Útil e como Resposta, a postagem dos colaboradores que resolveram o seu caso, ou foram úteis *

    segunda-feira, 4 de junho de 2012 12:21
    Moderador

Todas as Respostas

  • Olá,


    a solução recomendada pela Microsoft é corrigir as datas de início e término do horário de verão nas máquinas. Existem várias maneiras de se fazer isso... e uma delas é com script. Desenvolvi um (que está publicado no meu blog), mas há outras bem interessantes... uma delas foi publicada pelo Bruno aqui mesmo no fórum.

    []s,


    Vinicius Canto
    MVP Visual Developer - Scripting
    Bach. Ciencias da Computação - USP São Carlos

    Blog sobre Scripting: http://viniciuscanto.blogspot.com
    quarta-feira, 18 de outubro de 2006 14:32
    Moderador
  • Eu gero esse script como o que?

    uma bat um vbs, o que

    Abraço
    quarta-feira, 18 de outubro de 2006 18:01
  • Bom, lá tem todas as instruções... mas é um VBS. Basta criar um arquivo texto com extensão .vbs no final. Arquivos desse tipo são executados pelo Windows Script Host.

    []s,

    Vinicius Canto
    MVP Visual Developer - Scripting
    Bach. Ciencias da Computação - USP São Carlos

    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    quarta-feira, 18 de outubro de 2006 22:18
    Moderador
  • Caro Diego,

    estou com um problema semelhante ao teu. Se possivel, gostaria que voce me desse os passos para criar um servidor de horario e tambem, me dizer onde (GPO) eu coloco as linhas das instrucoes para sincronizar a hora em todos os computadores da minha rede.

    Gostaria que o sincronismo da hora fosse feito durante o ligamento do computador. Dessa forma nao precisarei mais de controlar o horario de verao.

    Ficarei muito grato por qualquer ajuda que possa me dar.

    segunda-feira, 26 de fevereiro de 2007 19:33
  • Olá Diego,

    O processo de sincronização de tempo em redes com Active Directory é completamente automático para todas estação sistema Windows 2000 ou superior. Nesse KB tem uma explicação detalhada de como funciona esse processo: http://support.microsoft.com/kb/816042/pt-br
    Nas estações com Windows 9x você pode usar a seguinte linha no script de logon:
    net time \\<servidor-de-rede> /set /y

    O problema que você parece estar tendo é de configurações de horário de verão desatualizadas.
    O procedimento que tenho implementado nos ambientes semelhantes ao seu é uma GPO linkada no domínio, atualizando as configurações de horário de verão através do utilitário timezone.exe. Usei essa solução quando chamava o timezone.exe pelo script de logon nas estações de usuários sem direitos de administrador o processo falhava por falta de direitos de escrita no registro.
    Há um KB específico sobre configuração de horário de verão que pode ser útil:
    Como configurar as datas de horário de verão para o Brasil
    http://support.microsoft.com/kb/317211/pt-br

    Ha ... a MS lançou um patch que atualiza os dados de horário de verão no XP e no 2003:
    Atualização cumulativa de fuso horário de fevereiro de 2007 para os sistemas operacionais do Microsoft Windows
    http://support.microsoft.com/kb/931836
    Se você só tem estações XP, basta garantir que este patch esteja instalado em todos computadores.
    quinta-feira, 1 de março de 2007 16:54
  • Bom Dia,

    Segue, fonte: http://technet.microsoft.com/pt-br/library/dd347580.aspx

    Altera a hora do sistema no computador para uma hora especificada por você.

    Sintaxe

    Set-Date [-Adjust] <TimeSpan> [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Confirm] [-WhatIf] [<CommonParameters>]
    
    Set-Date [-Date] <DateTime> [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Confirm] [-WhatIf] [<CommonParameters>]
    
    

    Descrição

    O cmdlet Set-Date altera a data e a hora do sistema no computador para a data e a hora especificadas por você. Você pode especificar uma nova data e/ou hora digitando uma cadeia de caracteres ou passando o objeto DateTime ou TimeSpan para Set-Date. Para especificar uma nova data ou hora, use o parâmetro Date. Para especificar um intervalo de alteração, use o parâmetro Adjust.

    Parâmetros

    -Adjust <TimeSpan>

    Adiciona ou subtrai o valor especificado da atual data e hora. Você pode digitar um ajuste no formato de data e hora padrão para sua localidade ou usar o parâmetro Adjust para transmitir um objeto TimeSpan de New-TimeSpan para Set-Date.

     

    Necessário?

    true

    Posição?

    1

    Valor padrão

    Aceitar entrada do pipeline?

    true (ByPropertyName)

    Aceitar caracteres curinga?

    false

    -Date <DateTime>

    Altera a data e a hora para os valores especificados. Você pode digitar uma nova data no formato de data abreviada e uma hora no formato de hora padrão para sua localização. Outra opção é transmitir um objeto Date-Time de Get-Date.

    Se você especificar uma data, mas não uma hora, o Set-Date irá alterar a hora para meia-noite na data especificada. Se você especificar somente uma hora, ele não irá alterar a data.

     

    Necessário?

    true

    Posição?

    1

    Valor padrão

    Aceitar entrada do pipeline?

    true (ByValue, ByPropertyName)

    Aceitar caracteres curinga?

    false

    -DisplayHint <DisplayHintType>

    Determina quais elementos da data e hora serão exibidos.

    Os valores válidos são:

    -- date: exibe somente a data

    -- time: exibe somente a hora

    -- datetime: exibe a data e a hora

    Esse parâmetro afeta somente a exibição. Ele não afeta o objeto DateTime que o Get-Date recupera.

     

    Necessário?

    false

    Posição?

    named

    Valor padrão

    Aceitar entrada do pipeline?

    false

    Aceitar caracteres curinga?

    false

    -Confirm

    Solicita confirmação antes da execução do comando.

     

    Necessário?

    false

    Posição?

    named

    Valor padrão

    Aceitar entrada do pipeline?

    false

    Aceitar caracteres curinga?

    false

    -WhatIf

    Descreve o que aconteceria se você executasse o comando, sem executá-lo de fato.

     

    Necessário?

    false

    Posição?

    named

    Valor padrão

    Aceitar entrada do pipeline?

    false

    Aceitar caracteres curinga?

    false

    <CommonParameters>

    Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulteabout_Commonparameters.

    Entradas e saídas

    O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

     

    Entradas

    System.DateTime

    Você pode canalizar uma data para Set-Date.

    Saídas

    System.DateTime

    Set-Date retorna um objeto que representa a data estabelecida.

    Observações

    Use esse cmdlet com cautela ao alterar a data e a hora no computador. A alteração pode impedir que o computador receba eventos abrangentes do sistema e atualizações acionadas por data ou hora. Use os parâmetros -WhatIf e -Confirm para evitar erros.

    Você pode usar métodos .NET padrão com os objetos DateTime e TimeSpan usados com Set-Date, como AddDays, AddMonths e FromFileTime. Para obter mais informações, consulte "DateTime Methods" e "TimeSpan Methods".

    Exemplo 1

    C:\PS>Set-Date -Date (Get-Date).AddDays(3)
    
    Descrição
    -----------
    Este comando adiciona três dias à data atual do sistema. Ele não afeta a hora. Este comando usa o parâmetro Date para especificar a data. Ele usa o cmdlet Get-Date para obter a data e a hora atuais e aplica o método .NET AddDays para objetos DateTime com um valor de 3 (dias).
    
    
    
    
    
    
    
    

    Exemplo 2

    C:\PS>set-date -adjust -0:10:0 -displayHint time
    
    Descrição
    -----------
    Este comando define a hora atual do sistema com um atraso de 10 minutos. Ele usa o parâmetro Adjust para especificar um intervalo de alteração e a alteração de hora (menos 10 minutos) no formato de hora padrão para o local. O parâmetro DisplayHint avisa o Windows PowerShell para que ele exiba somente a hora, mas não afeta o objeto DateTime que Set-Date retorna.
    
    
    
    
    
    
    
    

    Exemplo 3

    C:\PS>$t = get-date
    
    C:\PS>set-date -date $t
    
    Descrição
    -----------
    Esses comandos alteram a data e a hora do sistema no computador para a data e a hora salvas na variável $t. O primeiro comando obtém a data e a armazena em $t. O segundo comando usa o parâmetro Date para transmitir o objeto DateTime em $t para o cmdlet Set-Date.
    
    
    
    
    
    
    
    

    Exemplo 4

    C:\PS>$90mins = new-timespan -minutes 90
    
    C:\PS>set-date -adjust $90mins
    
    Descrição
    -----------
    Esses comandos antecipam a hora do sistema no computador local em 90 minutos. O primeiro comando usa o cmdlet New-Timespan para criar um objeto TimeSpan com um intervalo de 90 minutos e, em seguida, salva o objeto TimeSpan na variável $90mins. O segundo comando usa o parâmetro Adjust de Set-Date para ajustar a data pelo valor do objeto TimeSpan na variável $90mins.
    
    
    
    
    
    
    
    

    Abs



    * Ajude a organizar melhor o Fórum, dando Feedback sobre a dúvida solicitada, e marcando como Útil e como Resposta, a postagem dos colaboradores que resolveram o seu caso, ou foram úteis *

    segunda-feira, 4 de junho de 2012 12:21
    Moderador