Manipular informações de classe e instância

O WMI fornece uma variedade de técnicas para recuperar e manipular informações de instância e classe do WMI, usando o Microsoft PowerShell, Visual Basic Scripting Edition (VBScript) e C++.

A tabela a seguir lista os tópicos que discutem as técnicas para recuperar e manipular informações de classe e instância do WMI.

Tópico Descrição
Recuperar dados de classe ou instância do WMI Recupere e defina dados de e para o repositório de informações do WMI.
Modificar uma propriedade de instância Altere as informações na instância após recuperá-las.
Alterar a herança de uma instância Altere a classe pai de uma instância.
Modificar um método Modifique os parâmetros de uma instância.
Enumeração do WMI Enumerar objetos do WMI.
Consultar o WMI Consultar objetos do WMI.
Chamar um método Use métodos associados criados pela Microsoft ou outros desenvolvedores terceiros para manipular ainda mais objetos do WMI ou, então, afetar diretamente o objeto que o objeto do WMI representa.
Acessar uma coleção Enumere coleções no script.

 

Manipular dados usando VBScript

Você pode usar o acesso direto para acessar as propriedades WMI de uma classe ou instância do WMI diretamente em um SWbemObject, em vez de por meio da coleção de propriedades desse objeto. Você também pode executar métodos nesse objeto no estilo nativo da linguagem de programação em vez de usar a chamada SWbemServices.ExecMethod. Por exemplo, o método Create no Win32_Process tinha três parâmetros no Windows 2000, mas tem quatro parâmetros no Windows Server 2003.

Usando o acesso direto, você pode tratar propriedades e métodos do WMI como se fossem propriedades de automação e métodos de SWbemObject.

O exemplo a seguir mostra como você pode acessar uma propriedade.

VolumeName = MyDisk.Properties_("VolumeName")

O exemplo a seguir mostra como você pode acessar uma propriedade quando tiver acesso direto.

VolumeName = MyDisk.VolumeName

O encadeamento de objetos também é aceitável.

O exemplo a seguir mostra como acessar uma propriedade de um objeto inserido em outro objeto.

value = MyComputer.MyDisk.VolumeName

O exemplo a seguir mostra como acessar uma propriedade com notação de subscrito de matriz.

valueOfElement = MyDisk.MyArrayProperty(3)

O exemplo de código VBScript a seguir mostra como gerar uma instância dos parâmetros de entrada para o método Create na classe Win32_Process como um SWbemObject, preencher as propriedades de entrada e, em seguida, executar o método Create usando SWbemServices.ExecMethod.

A propriedade SWbemObject.Methods_ retorna uma coleção SWbemMethodSet dos métodos Win32_Process. Os membros do conjunto de métodos são objetos SWbemMethod e SWbemMethod.InParameters retorna os parâmetros de entrada para o método Create. O parâmetro de entrada CommandLine necessário é definido como "calc.exe". Em seguida, o método é executado por SWbemServices.ExecMethod, resultando na inicialização de um processo de calc.exe.

set Services = GetObject("winmgmts:root\cimv2")
Set obj = Services.Get("Win32_Process")
Set objIns = obj.Methods_("Create").InParameters.SpawnInstance_
objIns.CommandLine = "calc.exe"
Set objOut = Services.ExecMethod("Win32_Process", "Create", objIns)
MsgBox "Return value = " & objOut.returnvalue & VBCRLF & "Process ID = " & objOut.processid

O exemplo de código a seguir mostra como executar a operação anterior usando acesso direto.

set Services = GetObject("winmgmts:root\cimv2")
Set Obj = Services.Get("Win32_Process")
returnvalue = Obj.create("calc.exe",,,processid)
MsgBox "Return value = " & returnvalue & VBCRLF & "Process ID = " & processid

Para obter mais informações, consulte Chamar um método de provedor e scripts com SWbemObject.