Usar a biblioteca de tipos de script WMI

Você pode usar a biblioteca de tipos de script do WMI para chamar métodos da API de Script do WMI do Microsoft Visual Studio e em arquivos WSF do Host de Script do Windows.

Usar a Biblioteca de Tipos de Script do WMI com o Microsoft Visual Studio

Observação

Recursos do Visual InterDev 6.0 foram integrados ao Microsoft Visual Studio .NET.

 

O procedimento a seguir descreve como permitir que o IDE (ambiente de desenvolvimento integrado) esteja ciente da biblioteca de tipos WbemScripting.

Para adicionar a biblioteca de tipos de script do WMI às referências do projeto

  1. Selecione Adicionar Referências do menu Projeto.

  2. Na guia COM da caixa Adicionar Referência, selecione Biblioteca de Scripts V1.2 do Microsoft WMI.

  3. Se nenhuma opção adequada aparecer na lista Referências, adicione-a usando Procurar na caixa Referências. A caixa Procurar abre uma caixa Adicionar Referência que permite localizar a biblioteca de tipos WbemScripting.

    A biblioteca de tipos WbemScripting reside no arquivo Wbemdisp.tlb no diretório %windir%\System32\Wbem.

  4. Selecione o arquivo e clique em Abrir. A Biblioteca de Scripts V1.2 do Microsoft WMI aparece na lista de referências. Verifique se você selecionou a caixa ao lado desse item na lista.

Usar a Biblioteca de Tipos de Script do WMI com o Host de Script do Windows 2.0

Você pode incluir a referência ao WbemScripting.SWbemLocator em um arquivo WSF do Host de Script do Windows, diferente de um script escrito no Visual Basic, Scripting Edition ou outras linguagens de script. Isso permite usar nomes constantes em vez de valores. Por exemplo, use WbemAuthenticationLevelPktPrivacy em vez do valor 6 ao definir a autenticação.

Os scripts podem se conectar com a biblioteca de tipos da API de Script para o WMI usando os seguintes métodos:

  • Especificando o GUID WbemScripting nos métodos CreateObject e GetObject do VBScript.

    Isso alerta o Host de Script do Windows a se conectar ao conjunto de objetos WMI.

    O exemplo de código VBScript a seguir cria um objeto SWbemDateTime.

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • Usando a cadeia de caracteres moniker "winmgmts:" ao obter um objeto novo ou existente.

    O exemplo de código VBScript a seguir usa o moniker "winmgmts:" para obter a instância de Win32_Process com uma propriedade Handle igual a 0 (zero). Handle é a propriedade chave para essa classe.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • Referenciando a biblioteca de tipos do WMI usando a marca de <referência> do formato de arquivo XML WSH 2.0. Se você usar a marca de <referência>, a marca deverá ter um atributo uuid cujo valor seja o GUID da biblioteca de tipos do WMI ou (recomendado) um atributo de objeto cujo valor seja o PROGID de qualquer um dos objetos de script do WMI que você pode criar.

    O exemplo de código VBScript a seguir usa o PROGID de "WbemScripting". Para executar o script, salve o texto em um arquivo com uma extensão .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>
    
  • Usando uma marca de <objeto> para criar um objeto de script do WMI. Você pode especificar o atributo id com o valor de um nome que faz referência ao objeto de script do WMI que deseja criar e o atributo progid igual ao PROID do objeto de script do WMI.

    O script WSH a seguir exibe o nome do host e o número de processadores no computador local. Para executar o script, salve o texto em um arquivo com uma extensão .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>
    

Scripts no WMI

API de Script para o WMI