Rimozione di un singolo elemento da una raccolta WMI
Uno degli scopi principali dell'accesso a una raccolta consiste nel rimuovere un elemento dalla raccolta. È possibile rimuovere un elemento da una raccolta con una chiamata al metodo SWbemPropertySet.Remove. Questo metodo non è disponibile per SWbemObjectSet o SWbemMethodSet.
Gli elementi vengono rimossi per nome da SWbemPropertySet, SWbemQualifierSete SWbemNamedValueSet. Tuttavia, gli elementi in SWbemRefresher vengono rimossi dall'indice e da SWbemPrivilegeSet dalla costante che rappresenta il nome del privilegio.
Rimuovere un elemento da una raccolta
Nell'esempio di codice seguente viene illustrato come rimuovere l'elemento con una chiamata al metodo SWbemPropertySet.Remove.
oclass.Properties_.Remove "Prop2"
Nell'esempio seguente viene creata una nuova classe denominata "NewClass" nello spazio dei nomi root\default e vengono aggiunte tre proprietà. Lo script usa quindi il codice dell'esempio precedente per eliminare la seconda proprietà.
' Obtain an empty class and name it Const WBEM_CIMTYPE_STRING = 8 Set objSWbemService = GetObject("winmgmts:root\default") Set objClass = objSWbemService.get() Wscript.Echo "Creating class NewClass" objClass.Path_.Class = "NewClass" ' Add three properties For i = 1 to 3 objClass.Properties_.Add "Prop" & i, WBEM_CIMTYPE_STRING Next Getprops() ' Remove the Prop2 property objClass.Properties_.Remove "Prop2" Wscript.Echo "Second property removed " Getprops() ' Write the changes to the class back objClass.Put_ Sub Getprops() Wscript.Echo "Number of Properties = " _ & objClass.Properties_.Count For Each prop in objClass.Properties_ Wscript.Echo prop.name Next End Sub
Per altre informazioni, vedere Modifica di informazioni sulle classi e sulle istanze, accesso a una raccoltae rimozione di più elementi da una raccolta.