Uso della libreria di tipi di scripting WMI

È possibile usare la libreria di tipi di scripting WMI per chiamare i metodi API di scriptING WMI da Microsoft Visual Studio e nei file WSF host script di Windows.

Uso della libreria dei tipi di script WMI con Microsoft Visual Studio

Nota

Le funzionalità di Visual InterDev 6.0 sono state integrate in Microsoft Visual Studio .NET.

 

La procedura seguente descrive come abilitare l'ambiente di sviluppo integrato (IDE) a conoscere la libreria dei tipi WbemScripting.

Per aggiungere la libreria dei tipi di script WMI ai riferimenti al progetto

  1. Selezionare Aggiungi riferimenti dal menu Progetto .

  2. Nella scheda COM della casella Aggiungi riferimento selezionare Microsoft WMI Scripting V1.2 Library.

  3. Se non viene visualizzata alcuna opzione appropriata nell'elenco Riferimenti, aggiungerla usando Sfoglia nella casella Riferimenti . La finestra Sfoglia apre una casella Aggiungi riferimento che consente di individuare la libreria dei tipi WbemScripting.

    La libreria dei tipi WbemScripting risiede nel file Wbemdisp.tlb nella directory %windir%\System32\Wbem.

  4. Selezionare il file e fare clic su Apri. Nella libreria Microsoft WMI Scripting V1.2 viene visualizzata l'elenco dei riferimenti. Assicurarsi di selezionare la casella accanto a questo elemento nell'elenco.

Uso della libreria dei tipi di script WMI con l'host script di Windows 2.0

È possibile includere il riferimento al file WbemScripting.SWbemLocator in un file WSF host script di Windows, a differenza di uno script scritto in Visual Basic, Scripting Edition o in altri linguaggi di scripting. In questo modo è possibile usare i nomi costanti anziché i valori. Ad esempio, usare WbemAuthenticationLevelPktPrivacy anziché il valore 6 quando si imposta l'autenticazione.

Gli script possono connettersi con l'API scripting per la libreria dei tipi WMI usando i metodi seguenti:

  • Specifica del GUID WbemScripting nei metodi VBScript CreateObject e GetObject.

    In questo modo viene visualizzato l'host script di Windows per connettersi al set di oggetti WMI.

    L'esempio di codice VBScript seguente crea un nuovo oggetto SWbemDateTime .

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • Uso della stringa Moniker "winmgmts:" quando si ottiene un oggetto nuovo o esistente.

    Nell'esempio di codice VBScript seguente viene usato il moniker "winmgmts:" per ottenere l'istanza di Win32_Process con una proprietà Handle pari a 0 (zero). Handle è la proprietà chiave per questa classe.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • Riferimento alla libreria dei tipi WMI usando il <tag di riferimento> del formato di file XML WSH 2.0. Se si usa il <tag di riferimento> , il tag deve avere un attributo uuid il cui valore è il GUID della libreria dei tipi WMI o (consigliato) un attributo dell'oggetto il cui valore è il PROGID di uno degli oggetti script WMI che è possibile creare.

    Nell'esempio di codice VBScript seguente viene usato il PROGID di "WbemScripting". Per eseguire lo script, salvare il testo in un file con estensione 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>
    
  • Uso di un tag oggetto> per creare un < oggetto script WMI. È possibile specificare l'attributo ID con il valore di un nome che fa riferimento all'oggetto scripting WMI da creare e all'attributo progid uguale al PROID dell'oggetto scripting WMI.

    Lo script WSH seguente visualizza il nome host e il numero di processori nel computer locale. Per eseguire lo script, salvare il testo in un file con estensione 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 in WMI

API di scripting per WMI