Manipulación de la información de clases e instancias
WMI proporciona varias técnicas para recuperar y manipular la información de las clases e instancias 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 la información de las instancias y clases de WMI.
Tema | Descripción |
---|---|
Recuperación de datos de instancias o clases de WMI | Recupere datos del repositorio de información de WMI y establézcalos en él. |
Modificación de una propiedad de instancia | Cambie la información de la instancia después de recuperarla. |
Cambio de la herencia de una instancia | Cambie la clase principal de una instancia. |
Modificación de un método | Modifique los parámetros de una instancia. |
Enumeración de WMI | Enumere objetos de WMI. |
Consulta de WMI | Consulte objetos de WMI. |
Llamada a un método | Use métodos asociados creados por Microsoft u otros desarrolladores para manipular objetos WMI, o bien para modificar directamente el objeto que representa el objeto de WMI. |
Acceso a una colección | Enumere las colecciones del script. |
Manipulación de datos mediante VBScript
Puede usar el acceso directo para acceder a las propiedades WMI de una clase o instancia de WMI directamente en un objeto SWbemObject, en lugar de a través de la colección de propiedades del mismo. 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 de Win32_Process tenía tres parámetros en Windows 2000, pero tiene cuatro parámetros en Windows Server 2003.
El acceso directo permite tratar las propiedades y métodos de WMI como si fueran propiedades y métodos de automatización de SWbemObject.
En el siguiente ejemplo se muestra cómo acceder a cualquier propiedad.
VolumeName = MyDisk.Properties_("VolumeName")
En el ejemplo siguiente se muestra cómo acceder a una propiedad cuando se tiene acceso directo.
VolumeName = MyDisk.VolumeName
El encadenamiento de objetos también es aceptable.
En el ejemplo siguiente se muestra cómo obtener acceso a una propiedad de un objeto insertado en otro objeto.
value = MyComputer.MyDisk.VolumeName
En el ejemplo siguiente se muestra cómo acceder a una propiedad con notación de subíndice de matriz.
valueOfElement = MyDisk.MyArrayProperty(3)
En el siguiente ejemplo de código de VBScript se muestra cómo generar una instancia de los parámetros de entrada en el método Create en la clase Win32_Process como un objeto SWbemObject, rellenar las propiedades de entrada y, después, ejecutar el método Create mediante SWbemServices.ExecMethod.
La propiedad SWbemObject.Methods_ devuelve una colección SWbemMethodSet de los métodos Win32_Process. Los miembros del conjunto de métodos son objetos SWbemMethod y SWbemMethod.InParameters devuelve los parámetros de entrada del método Create. El parámetro de entrada CommandLine necesario se establece en "calc.exe". Luego, SWbemServices.ExecMethod ejecuta el método , lo que da como resultado 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 más información, consulte Llamada a un método de proveedor y Scripting con SWbemObject.