Manipular información de clase e instancia

WMI proporciona diversas técnicas para recuperar y manipular información de clase e instancia de WMI, mediante Microsoft PowerShell, Visual Basic Scripting Edition (VBScript) y C++.

En la tabla siguiente se enumeran los temas en los que se describen las técnicas para recuperar y manipular información de clase e instancia de WMI.

Tema Descripción
Recuperación de datos de clase o instancia de WMI Recuperar y establecer datos de y en el repositorio de información de WMI.
Modificar una propiedad de instancia Cambie la información de la instancia una vez recuperada.
Cambiar la herencia de una instancia Cambie la clase primaria de una instancia de.
Modificar un método Modifique los parámetros de una instancia.
Enumerar WMI Enumerar objetos WMI.
Consultando WMI Consultar objetos de WMI.
Llamar a un método Use métodos asociados creados por Microsoft u otros desarrolladores de terceros para manipular más objetos WMI, o bien afectar directamente al objeto que representa el objeto WMI.
Obtener acceso a una colección Enumerar colecciones en el script.

Manipular datos mediante VBScript

Puede usar el acceso directo para tener acceso a las propiedades de WMI de una clase o instancia de WMI directamente en un SWbemObject, en lugar de a través de la colección de propiedades de ese objeto. También puede ejecutar métodos en ese objeto en el estilo nativo del lenguaje de programación en lugar de usar la llamada SWbemServices.ExecMethod . Por ejemplo, el método Create en el _ proceso Win32 tenía tres parámetros en Windows 2000, pero tiene cuatro parámetros en Windows Server 2003.

Con el acceso directo, puede tratar las propiedades y los métodos de WMI como si fueran propiedades y métodos de automatización de SWbemObject.

En el ejemplo siguiente se muestra cómo se puede tener acceso a una propiedad.

VolumeName = MyDisk.Properties_("VolumeName")

En el ejemplo siguiente se muestra cómo puede tener acceso a una propiedad cuando tiene acceso directo.

VolumeName = MyDisk.VolumeName

También se admite el encadenamiento de objetos.

En el ejemplo siguiente se muestra cómo obtener acceso a una propiedad de un objeto que está incrustado en otro objeto.

value = MyComputer.MyDisk.VolumeName

En el ejemplo siguiente se muestra cómo obtener acceso a una propiedad con la notación de subíndice de matriz.

valueOfElement = MyDisk.MyArrayProperty(3)

En el ejemplo de código de VBScript siguiente se muestra cómo generar una instancia de los parámetros de entrada para el método Create de la clase de _ proceso de Win32 como SWbemObject, rellenar las propiedades de entrada y, a continuación, ejecutar el método Create con SWbemServices.ExecMethod.

La propiedad SWbemObject. _ Methods devuelve una colección SWbemMethodSet de los métodos de _ proceso de Win32 . Los miembros del conjunto de métodos son objetos SWbemMethod y SWbemMethod. Parameters devuelve los parámetros de entrada para el método Create . El parámetro de entrada de línea de comandos necesario se establece en "calc.exe". A continuación, SWbemServices.ExecMethodejecuta el método, lo que produce el inicio de un proceso 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

En el ejemplo de código siguiente se muestra cómo realizar la operación anterior mediante el acceso directo.

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 obtener más información, consulte llamar a un método de proveedor y scripting con SWbemObject.