Поделиться через


Метод 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
Заголовок
Wbemdisp.h
Библиотека типов
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject