Utilizzo della libreria dei tipi di scripting WMI
È possibile utilizzare la libreria di tipi di scripting WMI per chiamare i metodi dell'API di scripting WMI da Microsoft Visual Studio e all'interno dei file WSF dell'Host script di Windows.
Uso della libreria dei tipi di scripting 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 consentire all'ambiente di sviluppo integrato (IDE) di essere a conoscenza della libreria dei tipi WbemScripting.
Per aggiungere la libreria dei tipi di scripting WMI ai riferimenti al progetto
Selezionare Aggiungi riferimenti dal menu Progetto.
Nella scheda COM della casella Aggiungi riferimento selezionare Microsoft WMI Scripting V1.2 Library .
Se nell'elenco Riferimenti non viene visualizzata alcuna opzione adatta, aggiungerla usando Sfoglia nella casella Riferimenti. Il Sfoglia apre una finestra di dialogo Aggiungi riferimento che consente di individuare la libreria dei tipi WbemScripting.
La libreria dei tipi WbemScripting si trova nel file Wbemdisp.tlb nella directory %windir%\System32\Wbem.
Selezionare il file e fare clic su Apri. La libreria Microsoft WMI Scripting V1.2 viene visualizzata nell'elenco dei riferimenti. Assicurarsi di selezionare la casella accanto a questo elemento nell'elenco.
Utilizzo della libreria dei tipi di scripting WMI con Windows Script Host 2.0
È possibile includere il riferimento al WbemScripting.SWbemLocator in un file WSF dell'host di Windows Script, a differenza di uno script scritto in Visual Basic, Scripting Edition o altri linguaggi di scripting. In questo modo è possibile usare nomi costanti anziché valori. Ad esempio, usare WbemAuthenticationLevelPktPrivacy anziché il valore 6 quando si imposta l'autenticazione.
Gli script possono connettersi con l'API di scripting per la libreria dei tipi WMI usando i metodi seguenti:
Specifica del GUID WbemScripting nei metodi VBScript CreateObject e GetObject.
Questo informa l'host di Windows Script di connettersi al set di oggetti WMI.
Nell'esempio di codice VBScript seguente viene creato un nuovo oggetto SWbemDateTime.
Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
Quando si utilizza la stringa moniker "winmgmts:" per ottenere 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 di tipi WMI utilizzando il tag di riferimento <> del formato di file XML di WSH 2.0. Se si utilizza il tag di riferimento <>, il tag deve avere un attributo uuid il cui valore è GUID della libreria dei tipi WMI oppure (scelta consigliata) un attributo dell'oggetto il cui valore è il PROGID di uno degli oggetti di scripting 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>
Utilizzo di un oggetto <> tag per creare un oggetto script WMI. È possibile specificare l'attributo id con il valore di un nome che fa riferimento all'oggetto scripting WMI che si desidera creare e l'attributo progid uguale al PROID dell'oggetto script 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>
Argomenti correlati
-
Scripting in WMI
-
API di scripting per WMI