Rimozione di un singolo elemento da una raccolta WMI
Uno dei principali scopi di 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 dal nome da SWbemPropertySet, SWbemQualifierSet e SWbemNamedValueSet. Tuttavia, gli elementi in SWbemRefresher vengono rimossi dall'indice e da SWbemPrivilegeSet dalla costante che rappresenta il nome dei privilegi.
Per 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 delle informazioni sulla classe e sull'istanza, accesso a una raccolta e rimozione di più elementi da una raccolta.