Como remover um item de uma coleção do WMI

Uma das principais finalidades de acessar uma coleção é remover um item da coleção. Você pode remover um item de uma coleção com uma chamada para o método SWbemPropertySet.Remove. Esse método não está disponível para SWbemObjectSet ou SWbemMethodSet.

Os itens são removidos pelo nome do SWbemPropertySet, SWbemQualifierSet e SWbemNamedValueSet. No entanto, os itens em SWbemRefresher são removidos pelo índice e do SWbemPrivilegeSet pela constante que representa o nome do privilégio.

Para remover um item de uma coleção

  • O exemplo de código a seguir mostra como remover o item com uma chamada para o método SWbemPropertySet.Remove.

    oclass.Properties_.Remove "Prop2"
    

    O exemplo a seguir cria uma nova classe chamada "NewClass" no namespace root\default e adiciona três propriedades a ela. Em seguida, o script usa o código do exemplo anterior para excluir a segunda propriedade.

    ' 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
    

Para obter mais informações, confira Como manipular informações de classe e instância, Como acessar uma coleção e Como remover vários itens de uma coleção.