Usar la biblioteca de tipos de scripts WMI

Puede usar la biblioteca de tipos de scripts de WMI para llamar a métodos de API de scripting de WMI desde Microsoft Visual Studio y en archivos WSF de Windows Script Host.

Usar la biblioteca de tipos de scripts WMI con Microsoft Visual Studio

Nota

Las características de Visual InterDev 6,0 se han integrado en Microsoft Visual Studio .net.

En el procedimiento siguiente se describe cómo habilitar el entorno de desarrollo integrado (IDE) para que tenga en cuenta la biblioteca de tipos WbemScripting.

Para agregar la biblioteca de tipos de scripts WMI a las referencias del proyecto

  1. Seleccione Agregar referencias en el menú proyecto .

  2. En la pestaña COM del cuadro Agregar referencia , seleccione biblioteca de scripting de Microsoft WMI v 1.2.

  3. Si no aparece ninguna opción adecuada en la lista de referencias, agréguela mediante examinar en el cuadro referencias . El botón examinar abre un cuadro Agregar referencia que le permite buscar la biblioteca de tipos WbemScripting.

    La biblioteca de tipos WbemScripting reside en el archivo Wbemdisp. tlb en el directorio% WINDIR% \ system32 \ WBEM.

  4. Seleccione el archivo y haga clic en Abrir. La biblioteca Microsoft WMI scripting V 1.2 aparece en la lista de referencias. Asegúrese de activar la casilla situada junto a este elemento en la lista.

Usar la biblioteca de tipos de scripts WMI con Windows Script Host 2,0

Puede incluir la referencia a WbemScripting. SWbemLocator en un archivo wsf de Windows Script Host, a diferencia de un script escrito en Visual Basic, Scripting Edition u otros lenguajes de scripting. Esto le permite usar nombres constantes en lugar de valores. Por ejemplo, use WbemAuthenticationLevelPktPrivacy en lugar del valor 6 al establecer la autenticación.

Los scripts pueden conectarse con la API de scripting para la biblioteca de tipos WMI mediante los métodos siguientes:

  • Especificar el GUID de WbemScripting en los métodos de VBScript CreateObject y GetObject.

    Esto alerta a Windows Script Host para conectarse al conjunto de objetos WMI.

    En el siguiente ejemplo de código de VBScript se crea un nuevo objeto SWbemDateTime .

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • Usar la cadena de moniker "winmgmts:" al obtener un objeto nuevo o existente.

    En el siguiente ejemplo de código de VBScript se usa el moniker "winmgmts:" para obtener la instancia del _ proceso de Win32 con una propiedad de identificador de 0 (cero). Handle es la propiedad de clave de esta clase.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • Hacer referencia a la biblioteca de tipos WMI mediante la etiqueta del formato de archivo XML de WSH 2,0. Si usa la etiqueta, la etiqueta debe tener un atributo UUID cuyo valor sea el GUID de la biblioteca de tipos WMI, o (recomendado) un atributo de objeto cuyo valor es el ProgID de cualquiera de los objetos de scripting de WMI que puede crear.

    En el siguiente ejemplo de código de VBScript se usa el PROGID de "WbemScripting". Para ejecutar el script, guarde el texto en un archivo con la extensión. wsf.

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
    <reference object="WbemScripting.SWbemLocator"/>
    <script language="VBScript">
        set service = GetObject("winmgmts:")
        ' Following line uses a symbolic 
        ' constant from the WMI type library
        service.Security_.impersonationLevel = _
            wbemImpersonationLevelDelegate
    </script>
    </job>
    
  • Usar un objeto de <> etiqueta para crear un objeto de scripting de WMI. Puede especificar el atributo ID con el valor de un nombre que haga referencia al objeto de scripting de WMI que desea crear, y el atributo ProgID igual a PROID del objeto de scripting de WMI.

    El siguiente script de WSH muestra el nombre de host y el número de procesadores en el equipo local. Para ejecutar el script, guarde el texto en un archivo con la extensión. wsf.

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
     <object id="objSWbemLocator" progid="WbemScripting.SWbemLocator"/>
     <script language="VBScript">
    
      strComputer = "."
      Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
      Set colSettings = objSWbemServices.ExecQuery("Select * From Win32_ComputerSystem")
      For Each objComputer in colSettings
       Wscript.Echo "System Name: " & objComputer.Name
       Wscript.Echo "Number of Processors: " & objComputer.NumberOfProcessors
      Next
    
     </script>
    </job>
    

Scripting en WMI

API de scripting para WMI