Como modificar o Registro via Script - Parte 1

Olá,

Este é mais um daqueles meus posts básicos, pra quem tá começando. Vou tratar, nessa série de dois artigos, como trabalhar com o Registro do Windows via script.

O Registro é o "substituto" dos arquivos .INI que existiam nas versões anteriores do Windows. A idéia dele era centralizar toda a configuração do computador, facilitando então o seu acesso, alteração, remoção, além de facilitar backups e outras tarefas administrativas. Mais informações sobre ele podem ser encontradas nesse outro artigo que escrevi, e a seqüência dele.

A partir de agora vou falar sobre como manipular o registro, mas via script.

O Windows Script Host fornece métodos bem simples para ler, escrever e apagar chaves e valores no Registro. São os Métodos RegRead, RegWrite e RegDelete. É possível ler e escrever strings (REG_SZ), expandable-strings (REG_EXPAND_SZ), DWORDs (REG_DWORD) e bitmaps (REG_BINARY). Isso já permite fazer qualquer operação simples no registro, visto que a maioria dos dados lá são ou strings ou binários.

O problema deles começa quando é necessário enumerar os valores de uma chave, enumerar as subchaves, (se você ficou confuso com esses termos, sugiro ler novamente meus posts anteriores sobre o registro. Lá eu falo disso com detalhes) ou então ler/gravar dados binários muito grandes (maiores que 4 bytes) ou multi-strings. Isso não é suportado pelo WSH nativamente. E em parte, isso é perfeitamente aceitável, uma vez que o WSH nasceu junto com o Windows 95 e os inteiros longos e multi-strings no Registro só apareceram no Windows com o Windows 2000.

 A documentação das funções RegRead, RegWrite e RegDelete pode ser encontrada aqui, aqui e aqui.

Para operações mais complexas no registro, temos duas saídas:

  1. Modificar o Registro manualmente usando o Editor de Registro e exportar um arquivo .REG com as alterações necessárias. A seguir, utilize um dos parâmetros da linha de comando do comando Regedit.exe para importar o arquivo .REG. Essa importação pode ser feita mesmo dentro do script, com os métodos Run ou Exec.
  2. Utilizar o comando REG, também pela linha de comando.
  3. Utilizar um script que utiliza o WMI para fazer a tarefa. Embora o WMI resolva os problemas com o Registro que o WSH não consegue resolver nativamente, ele só existe nativamente no Windows 2000 e superiores e no Windows 9x como componente opcional. Além disso, o WMI é naturalmente mais lento que os métodos RegRead, RegWrite e RegDelete.

Ainda sobre o WMI, você pode encontrar exemplos de como manipular o registro nesse link. Praticamente todos usam WMI para obter informações do Registro da máquina local. A vantagem do WMI, nesse caso, é a possibilidade de trabalhar com outros computadores mudando apenas uma linha de código. Normalmente, para executar o mesmo script em outro computador basta alterar a variável strComputer nos scripts do ScriptCenter.

Bom, por hoje é só. Em breve continuo a segunda parte desta série de scripts sobre o Registro.

Categorias dessa postagem:

Comentários

Andre Martins : Vinicius,

Tem ideia de como compactar um diretorio via script?

Abs, [10/10/07 17:48 - link]

Vinicius Canto : Sim. Basta utilizar (via VBS, CMD ou BAT) o comando compact.

[]s,

Vinicius [28/10/07 11:35 - link]