Удаление одного элемента из коллекции WMI

Одной из main целей доступа к коллекции является удаление элемента из коллекции. Вы можете удалить элемент из коллекции с помощью вызова метода SWbemPropertySet.Remove . Этот метод недоступен для SWbemObjectSet или SWbemMethodSet.

Элементы удаляются по имени из SWbemPropertySet, SWbemQualifierSet и SWbemNamedValueSet. Однако элементы в SWbemRefresher удаляются по индексу, а из SWbemPrivilegeSet — константой, представляющей имя привилегии.

Удаление элемента из коллекции

  • В следующем примере кода показано, как удалить элемент с помощью вызова метода SWbemPropertySet.Remove .

    oclass.Properties_.Remove "Prop2"
    

    В следующем примере создается новый класс с именем NewClass в корневом пространстве имен по умолчанию и добавляются три свойства. Затем скрипт использует код из предыдущего примера, чтобы удалить второе свойство.

    ' 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
    

Дополнительные сведения см. в разделах Управление сведениями о классах и экземплярах, Доступ к коллекции и Удаление нескольких элементов из коллекции.