Uso de la biblioteca de tipos de scripting de WMI

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

Uso de la biblioteca de tipos de scripting de 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 tener en cuenta la biblioteca de tipos WbemScripting.

Adición de la biblioteca de tipos de scripting de 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 la biblioteca de scripting V1.2 de Microsoft WMI.

  3. Si no aparece ninguna opción adecuada en la lista de referencias, agréguela mediante Examinar en el cuadro Referencias. 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 de scripting V1.2 de Microsoft WMI aparece en la lista de referencias. Asegúrese de seleccionar el cuadro situado junto a este elemento en la lista.

Uso de la biblioteca de tipos de scripting de 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 de constantes en lugar de valores. Por ejemplo, use WbemAuthenticationLevelPktPrivacy en lugar del valor 6 al establecer la autenticación.

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

  • La especificación del GUID de WbemScripting en los métodos CreateObject y GetObject de VBScript.

    Esto alerta a Windows Script Host que se conecte al conjunto de objetos de WMI.

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

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • El uso de 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 de Win32_Process con una propiedad Handle de 0 (cero). Handle es la propiedad clave de esta clase.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • La referencia a la biblioteca de tipos de WMI mediante la etiqueta <reference> del formato de archivo XML de WSH 2.0. Si usa la etiqueta <reference>, esta debe tener un atributo uuid cuyo valor sea el GUID de la biblioteca de tipos de WMI o un atributo de objeto (recomendado) cuyo valor sea el PROGID de cualquiera de los objetos de scripting de WMI que pueda 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 una 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>
    
  • El uso de la etiqueta <object> 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 quiere crear y el atributo progid igual al 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 una 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