Partilhar via


Usando a biblioteca de tipos de script WMI

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

Usando a biblioteca de tipos de script WMI com o Microsoft Visual Studio

Observação

Os recursos do Visual InterDev 6.0 foram integrados ao Microsoft Visual Studio .NET.

 

O procedimento a seguir descreve como habilitar o ambiente de desenvolvimento integrado (IDE) para estar ciente da biblioteca de tipos WbemScripting.

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

  1. Selecione Adicionar referências no menu projeto.

  2. Na guia COM da caixa Adicionar Referência, selecione Microsoft WMI Scripting V1.2 Library.

  3. Se nenhuma opção adequada aparecer na lista de Referências, adicione-a utilizando o botão Procurar na caixa de Referências. A Procurar abre uma caixa Adicionar de 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. Microsoft WMI Scripting V1.2 Library aparece na lista de referências. Certifique-se de selecionar a caixa ao lado deste item na lista.

Usando a biblioteca de tipos de script WMI com o Windows Script Host 2.0

Você pode incluir a referência ao WbemScripting.SWbemLocator em um arquivo WSF do Windows Script Host, ao contrário de um script escrito em Visual Basic, Scripting Edition ou outras linguagens de script. Isso permite que você use 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 Scripting API for WMI usando os seguintes métodos:

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

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

    O exemplo de código VBScript a seguir cria um novo 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 utiliza o moniker "winmgmts:" para obter a instância de Win32_Process com uma propriedade Handle de 0 (zero). Handle é a propriedade chave para esta classe.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • Fazendo referência à biblioteca de tipos WMI usando a marca <de referência> do formato de arquivo XML WSH 2.0. Se usares a tag de referência <>, a tag deverá ter um atributo uuid cujo valor seja o GUID da biblioteca de tipos WMI, ou (recomendado) um atributo de objeto cujo valor seja o PROGID de qualquer dos objetos de scripting WMI que possas 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 um objeto <> tag para criar um objeto de script WMI. Você pode especificar o atributo id com o valor de um nome que faz referência ao objeto de script WMI que você deseja criar e o atributo progid igual ao PROID do objeto de script 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>
    

Scripting no âmbito do WMI

API de script para WMI