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 aveva 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.