Udostępnij za pośrednictwem


Usuwanie pojedynczego elementu z kolekcji WMI

Jednym z głównych celów uzyskiwania dostępu do kolekcji jest usunięcie elementu z kolekcji. Element z kolekcji można usunąć za pomocą wywołania metody SWbemPropertySet.Remove. Ta metoda nie jest dostępna dla SWbemObjectSet lub SWbemMethodSet.

Elementy są usuwane według nazwy z SWbemPropertySet, SWbemQualifierSeti SWbemNamedValueSet. Jednak elementy w SWbemRefresher są usuwane przez indeks, a te z SWbemPrivilegeSet przez stałą reprezentującą nazwę przywileju.

Aby usunąć element z kolekcji

  • Poniższy przykład kodu pokazuje, jak usunąć element z wywołaniem metody SWbemPropertySet.Remove.

    oclass.Properties_.Remove "Prop2"
    

    Poniższy przykład tworzy nową klasę o nazwie "NewClass" w głównej\domyślnej przestrzeni nazw i dodaje do niej trzy właściwości. Następnie skrypt używa kodu z poprzedniego przykładu, aby usunąć drugą właściwość.

    ' 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
    

Aby uzyskać więcej informacji, zobacz Manipulowanie informacjami o klasach i wystąpieniach, uzyskiwanie dostępu do kolekcjii usuwanie wielu elementów z kolekcji.