Condividi tramite


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.