Метод SWbemServices.Delete

Метод Delete объекта SWbemServices удаляет класс или экземпляр, указанный в пути к объекту. Удалить объекты можно только в текущем пространстве имен.

Если динамический поставщик предоставляет класс или экземпляр, этот объект нельзя удалить, если поставщик не поддерживает удаление класса или экземпляра.

Этот метод вызывается в синхронном режиме. Дополнительные сведения см. в разделе Вызов метода.

Описание этого синтаксиса см. в разделе Соглашения о документах для API скриптов.

Синтаксис

SWbemServices.Delete( _
  ByVal strObjectPath, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Параметры

strObjectPath

Обязательный. Строка, содержащая путь к объекту, который требуется удалить. Дополнительные сведения см. в разделе Описание расположения объекта WMI.

iFlags [необязательно]

Зарезервировано. Это значение должно быть равно нулю.

objWbemNamedValueSet [необязательно]

Как правило, это не определено. В противном случае это объект SWbemNamedValueSet , элементы которого представляют сведения контекста, которые могут использоваться поставщиком, который обслуживает запрос. Поставщик, который поддерживает или требует такие сведения, должен документировать имена распознаваемых значений, тип данных значения, допустимые значения и семантику.

Возвращаемое значение

Этот метод не возвращает значение.

Коды ошибок

После завершения метода Delete объект Err может содержать один из кодов ошибок из следующего списка.

wbemErrAccessDenied — 2147749891 (0x80041003)

Текущий контекст не имеет достаточных прав безопасности для удаления объекта.

wbemErrFailed — 2147749889 (0x80041001)

Незаданная ошибка.

wbemErrInvalidClass — 2147749904 (0x80041010)

Указанный класс не существует.

wbemErrInvalidOperation — 2147749910 (0x80041016)

Объект не может быть удален.

wbemErrNotFound — 2147749890 (0x80041002)

Объект не существует.

wbemErrOutOfMemory — 2147749894 (0x80041006)

Недостаточно памяти для завершения операции.

Комментарии

Метод SWbemServices.Delete можно использовать, если свойству ключа для объекта не присвоено значение, так как для этого метода в качестве входных данных требуется только путь к объекту. Этот метод можно использовать в ситуациях, когда SWbemObject.Delete_ завершается сбоем из-за отсутствия значения ключа. Если объект зафиксирован в WMI через SWbemObject.Put_, то объект SWbemObjectPath был получен с помощью вызова .

Примеры

В следующем примере создается новый класс, добавляется свойство, которое не является ключом, записывается новый класс в репозиторий и отображается путь к новому объекту класса. Затем скрипт создает экземпляр нового класса, записывает экземпляр и отображает путь. Обратите внимание, что скрипт удаляет класс и его экземпляры из репозитория путем удаления класса . Дополнительные сведения о классах и экземплярах WMI см. в разделах Управление сведениями о классах и экземплярах и Общая информационная модель.

wbemCimtypeSint32 = 3
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"

' Add a property
' Integer property
objClass.Properties_.Add "iProperty", wbemCimtypeSint32  
objClass.Properties_("iProperty").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.iProperty = 1000

' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
wscript.echo objInstancePath.Path

' Remove the new class and instance from the repository
objSWbemService.Delete("NewClass")
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_SWbemServices
IID
IID_ISWbemServices

См. также раздел

SWbemServices

SWbemObjectPath