Tarefas do WMI: Registro
As tarefas do WMI para o registro criam e modificam chaves e valores do registro. Para obter outros exemplos, confira o TechNet ScriptCenter em https://www.microsoft.com/technet.
Os exemplos de script mostrados neste tópico obtêm dados somente do computador local. Para obter mais informações sobre como usar o script para obter dados de computadores remotos, confira Como conectar-se ao WMI em um computador remoto.
O procedimento a seguir descreve como executar um script.
Para executar um script
- Copie o código e salve-o em um arquivo com a extensão .vbs, por exemplo, nomedoarquivo.vbs. Verifique se o editor de texto não adicionou a extensão .txt ao arquivo.
- Abra uma janela do prompt de comando e navegue até o diretório no qual deseja salvar o arquivo.
- Digite cscript nomedoarquivo.vbs no prompt de comando.
- Se você não conseguir acessar um log de eventos, verifique se está executando a partir de um prompt de comandos com privilégios elevados. Alguns logs de eventos, como o Log de Eventos de Segurança, podem ser protegidos por UAC (Controles de Conta de Usuário).
Observação
Por padrão, o cscript exibe a saída de um script na janela do prompt de comando. Como os scripts do WMI podem gerar uma grande quantidade de saída, pode ser interessante redirecionar essa saída para um arquivo. Digite cscript nomedoarquivo.vbs > arquivodesaida.txt no prompt de comando para redirecionar a saída do script nomedoarquivo.vbs para arquivodesaida.txt.
A tabela a seguir lista exemplos de script que podem ser usados para obter diversos tipos de dados do computador local.
Como fazer... | Classes ou métodos WMI | ||||||||
---|---|---|---|---|---|---|---|---|---|
... ler valores de chave do registro usando o WMI? | Use a classe StdRegProv, localizada no namespace root\default. Você não pode obter instâncias dessa classe, pois o Provedor de Registro do Sistema é apenas um provedor de métodos e eventos. No entanto, você pode obter dados do registro por meio de métodos como EnumKey ou EnumValue. O Win32_Registry, localizado no namespace root\cimv2, obtém dados sobre o registro como um todo, como o tamanho dele.
|
||||||||
... criar uma nova chave do registro? | Use a classe StdRegProv, localizada no namespace root\default, e o método CreateKey.
|
||||||||
... criar um novo valor do registro em uma chave? | Use a classe StdRegProv, localizada no namespace root\default, e o método CreateKey. Em seguida, use um dos métodos Set, dependendo de qual tipo de dados do registro é o valor, como o SetDWORDValue. Os métodos Set criarão um valor, se ainda não houver. Para obter mais informações, confira Como mapear um tipo de dados de registro para um tipo de dados WMI.
|
||||||||
... evitar receber o erro Classe Inválida ao tentar gravar um script para ler o registro? | Use o namespace root\default ao acessar a classe StdRegProv. StdRegProv não faz parte do namespace cimv2. Por isso, o erro "Classe Inválida" é gerado, se você tentar se conectar a "root\cimv2:StdRegProv".
|
||||||||
... verificar a segurança em uma chave do registro específica? | Use a classe StdRegProv, localizada no namespace root\default, e o método CheckAccess. Você só pode verificar os direitos de acesso para o usuário atual que está executando o script ou aplicativo. Você não pode verificar os direitos de acesso para outro usuário especificado. |
||||||||
... ler e gravar valores binários do registro? | Use a classe StdRegProv, localizada no namespace "Root\Default" e nos métodos GetBinaryValue e SetBinaryValue. Os valores do registro que aparecem no utilitário RegEdt32 como uma série de valores hexadecimais de bytes estão no formato de dados REG_BINARY. Para obter mais informações, confira Como mapear um tipo de dados de registro para um tipo de dados WMI. O exemplo de código VBScript a seguir cria uma nova chave com um valor binário. O valor binário é fornecido na matriz de bytes iValues especificada em Hex.
O script a seguir lê o valor binário.
|
||||||||
... ler e gravar valores do registro que contêm várias cadeias de caracteres? | Use a classe StdRegProv, localizada no namespace root\default GetMultiStringValue, e os métodos SetMultiStringValue. As chaves do registro que aparecem no utilitário RegEdt32 como uma série de cadeias de caracteres separadas por espaços estão no formato de dados REG_MULTI_SZ. Para obter mais informações, confira Como mapear um tipo de dados de registro para um tipo de dados WMI. O exemplo de código VBScript a seguir cria uma nova chave e um novo valor de multistring.
O script a seguir lê o valor de multistring.
|
||||||||
... remover uma chave do registro? | Use a classe StdRegProv, localizada no namespace root\default, e os métodos DeleteKey.
|