Метод SWbemObject.Delete_
Метод Delete_ объекта SWbemObject удаляет текущий класс или текущий экземпляр . Если динамический поставщик предоставляет класс или экземпляр, иногда невозможно удалить этот объект, если поставщик не поддерживает удаление класса или экземпляра. Описание этого синтаксиса см. в разделе Соглашения о документах для API скриптов.
Синтаксис
SWbemObject.Delete_( _
[ ByVal iFlags ], _
[ ByVal objwbemNamedValueSet ] _
)
Параметры
-
iFlags [in, необязательный]
-
Зарезервировано и должно иметь значение 0 (ноль), если указано.
-
objwbemNamedValueSet [in, необязательный]
-
Этот параметр обычно не определен. В противном случае это объект SWbemNamedValueSet , элементы которого представляют сведения контекста, которые могут использоваться поставщиком, обслуживающим запрос. Поставщик, который поддерживает или требует такие сведения, должен документировать имена распознаваемых значений, тип данных значения, допустимые значения и семантику.
Возвращаемое значение
Этот метод не возвращает значение.
Коды ошибок
После завершения метода Delete_ объект Err может содержать один из кодов ошибок из следующего списка.
-
wbemErrAccessDenied — 2147749891 (0x80041003)
-
Текущий контекст не имеет достаточных прав безопасности для удаления объекта.
-
wbemErrFailed — 2147749889 (0x80041001)
-
Незаданная ошибка.
-
wbemErrInvalidClass — 2147749904 (0x80041010)
-
Указанный класс не существует.
-
wbemErrInvalidOperation — 2147749910 (0x80041016)
-
Объект не может быть удален.
-
wbemErrNotFound — 2147749890 (0x80041002)
-
Объект не существует.
-
wbemErrOutOfMemory — 2147749894 (0x80041006)
-
Недостаточно памяти для завершения операции.
Комментарии
Метод Delete_ завершается ошибкой, если создается новый экземпляр SWbemObject , но для свойства key не указано значение. Инструментарий управления Windows (WMI) автоматически создает значение глобально уникального идентификатора (GUID), но SWbemObject.Delete_ не принимает значение GUID. В этом случае работает SWbemServices.Delete, использующий путь к объекту. Обратите внимание, что объект SWbemObjectPath возвращается методом SWbemObject.Put_ после фиксации объекта в WMI.
Примеры
В следующем примере создается новый класс ; добавляет свойство ключа; записывает новый класс в репозиторий; и отображает путь к новому объекту класса. Затем скрипт создает экземпляр нового класса; записывает его; и отображает путь. Обратите внимание, что скрипт удаляет класс и его экземпляры из репозитория, просто удалив класс.
On Error Resume Next
wbemCimtypeString = 8 ' String datatype
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"
' Add a property
' String property
objClass.Properties_.add "PropertyName", wbemCimtypeString
' Make the property a key property
objClass.Properties_("PropertyName").Qualifiers_.Add "key", TRUE
' Write the new class to the root\default namespace in the repository
Set objClassPath = objClass.Put_
wscript.echo objClassPath.Path
'Create an instance of the new class using SWbemObject.SpawnInstance
Set objNewInst = GetObject( _
"Winmgmts:root\default:NewClass").SpawnInstance_
objNewInst.PropertyName = "My Instance"
' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
wscript.echo objInstancePath.Path
' Remove the new class and instance from the repository
objClass.Delete_()
If Err <> 0 Then
WScript.Echo Err.Number & " " & Err.Description
Else
WScript.Echo "Delete succeeded"
End If
' Release SwbemServices object
Set objSWbemService = Nothing
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista |
Минимальная версия сервера |
Windows Server 2008 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
CLSID |
CLSID_SWbemObject |
IID |
IID_ISWbemObject |