WMI コレクションからの単一項目の削除

コレクションにアクセスする主な目的の 1 つは、コレクションから項目を削除することです。 コレクションから項目を削除するには、SWbemPropertySet.Remove メソッドを呼び出します。 このメソッドは、SWbemObjectSet または SWbemMethodSet では使用できません。

項目は、SWbemPropertySetSWbemQualifierSet、および SWbemNamedValueSet から名前別に削除されます。 ただし、SWbemRefresher 内の項目はインデックスによって削除され、SWbemPrivilegeSet からは特権名を表す定数によって削除されます。

コレクションから項目を削除する

  • 次のコード例は、SWbemPropertySet.Remove メソッドを呼び出して項目を削除する方法を示しています。

    oclass.Properties_.Remove "Prop2"
    

    次の例では、root\default 名前空間に "NewClass" という名前の新しいクラスを作成し、それに 3 つのプロパティを追加します。 次に、スクリプトは前の例のコードを使用して 2 番目のプロパティを削除します。

    ' 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
    

詳細については、「クラスとインスタンス情報の操作」、「コレクションへのアクセス」、「コレクションからの複数の項目の削除」を参照してください。