Reg Query Issues

1

Eu tenho um script em lote que faz relatórios em nossos sistemas e parte deles consulta o registro para obter informações. O script não consegue obter o valor da chave quando é executado pelo sistema, mas sempre que eu executo o script, ele funciona perfeitamente

o comando:

REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\ScanMail for Exchange\CurrentVersion" /v PatternStringFormatted > current1.tmp

deve retornar:

HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\ScanMail for Exchange\CurrentVersion
    PatternStringFormatted    REG_SZ    6.645.00

Este script está falhando em uma máquina Server 2008 R2, mas é executado bem em máquinas Server 2003 R2.

    
por Fitz 23.11.2009 / 21:55

2 respostas

1

Acontece que é um problema com o comando reg e 64 vs 32 bits. Reg consulta a chave de 32 bits, mas essa informação não é copiada da de 64 bits.

Parece que esse script precisa ser atualizado para o powershell

    
por 25.11.2009 / 17:17
1

O comando reg é apenas uma parte do interpretador de comandos que você está executando. Na versão x64 do Server 2008, há dois interpretadores de comandos possíveis que seu script pode estar executando como:

  • % windir% \ System32 \ cmd.exe
  • % windir% \ SysWOW64 \ cmd.exe

Ironicamente, a cópia no System32 é, na verdade, o binário de 64 bits e a cópia no SysWOW64 é um binário de 32 bits. Se o script estiver sendo executado no contexto do interpretador de comandos de 32 bits, então sim, seus comandos reg terão acesso apenas às chaves de registro de 32 bits redirecionadas. Mas se você executar o interpretador de comandos de 64 bits, ele terá acesso a todas as chaves de 64 bits como qualquer outro aplicativo de 64 bits.

Eu estou supondo que o processo automatizado que você está acionando seu script é, por si só, um processo de 32 bits. Portanto, quando ele invoca o prompt de comando, o Windows fornece a versão de 32 bits do prompt de comando. Assim, seu script só tem acesso às chaves de 32 bits.

    
por 23.11.2009 / 23:41