Метод 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 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
CLSID |
CLSID_SWbemServices |
IID |
IID_ISWbemServices |