Удаление одного элемента из коллекции 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
Дополнительные сведения см. в разделах Управление сведениями о классах и экземплярах, Доступ к коллекции и Удаление нескольких элементов из коллекции.