Modifica delle informazioni sulle classi e sulle istanze

WMI offre un'ampia gamma di tecniche per recuperare e modificare le informazioni sulle classi WMI e sulle istanze, usando Microsoft PowerShell, Visual Basic Scripting Edition (VBScript) e C++.

Nella tabella seguente sono elencati gli argomenti che illustrano le tecniche per recuperare e modificare le informazioni sulle classi WMI e sulle istanze.

Argomento Descrizione
Recupero di dati della classe WMI o dell'istanza Recuperare e impostare i dati da e nel repository di informazioni WMI.
Modifica di una proprietà dell'istanza Modificare le informazioni nell'istanza dopo il recupero.
Modifica dell'ereditarietà di un'istanza Modificare la classe padre di un'istanza di .
Modifica di un metodo Modificare i parametri di un'istanza di .
Enumerazione WMI Enumerare oggetti WMI.
Esecuzione di query SU WMI Eseguire query su oggetti WMI.
Chiamata di un metodo Utilizzare i metodi associati creati da Microsoft o da altri sviluppatori di terze parti per modificare ulteriormente gli oggetti WMI oppure influire direttamente sull'oggetto rappresentato dall'oggetto WMI.
Accesso a una raccolta Enumerare le raccolte nello script.

 

Modifica dei dati tramite VBScript

È possibile usare l'accesso diretto per accedere alle proprietà WMI di una classe o di un'istanza WMI direttamente in un oggetto SWbemObject, anziché tramite la raccolta di proprietà di tale oggetto. È anche possibile eseguire metodi su tale oggetto nello stile nativo del linguaggio di programmazione anziché usare la chiamata SWbemServices.ExecMethod . Ad esempio, il metodo Create in Win32_Process dispone di tre parametri in Windows 2000, ma ha quattro parametri in Windows Server 2003.

Usando l'accesso diretto, è possibile gestire proprietà e metodi WMI come se fossero proprietà e metodi di automazione di SWbemObject.

Nell'esempio seguente viene illustrato come accedere a una proprietà.

VolumeName = MyDisk.Properties_("VolumeName")

Nell'esempio seguente viene illustrato come accedere a una proprietà quando si ha accesso diretto.

VolumeName = MyDisk.VolumeName

Anche il concatenamento degli oggetti è accettabile.

Nell'esempio seguente viene illustrato come accedere a una proprietà di un oggetto incorporato in un altro oggetto .

value = MyComputer.MyDisk.VolumeName

Nell'esempio seguente viene illustrato come accedere a una proprietà con notazione di indice di matrice.

valueOfElement = MyDisk.MyArrayProperty(3)

Nell'esempio di codice VBScript seguente viene illustrato come generare un'istanza dei parametri di input per il metodo Create nella classe Win32_Process come oggetto SWbemObject, popolare le proprietà di input e quindi eseguire il metodo Create usando SWbemServices.ExecMethod.

La proprietà SWbemObject.Methods_ restituisce un insieme SWbemMethodSet dei metodi Win32_Process . I membri del set di metodi sono oggetti SWbemMethod e SWbemMethod.InParameters restituisce i parametri di input per il metodo Create . Il parametro di input CommandLine obbligatorio è impostato su "calc.exe". Il metodo viene quindi eseguito da SWbemServices.ExecMethod, con conseguente avvio di un processo di calc.exe.

set Services = GetObject("winmgmts:root\cimv2")
Set obj = Services.Get("Win32_Process")
Set objIns = obj.Methods_("Create").InParameters.SpawnInstance_
objIns.CommandLine = "calc.exe"
Set objOut = Services.ExecMethod("Win32_Process", "Create", objIns)
MsgBox "Return value = " & objOut.returnvalue & VBCRLF & "Process ID = " & objOut.processid

Nell'esempio di codice seguente viene illustrato come eseguire l'operazione precedente usando l'accesso diretto.

set Services = GetObject("winmgmts:root\cimv2")
Set Obj = Services.Get("Win32_Process")
returnvalue = Obj.create("calc.exe",,,processid)
MsgBox "Return value = " & returnvalue & VBCRLF & "Process ID = " & processid

Per altre informazioni, vedere Chiamata di un metodo provider e scripting con SWbemObject.