Метод SWbemObject.Put_
Метод Put_SWbemObject создает или обновляет экземпляр или объект класса до инструментария управления Windows (WMI). Этот метод можно использовать после изменения любых свойств или методов в SWbemObject, а изменения записываются в WMI.
Описание этого синтаксиса см. в разделе Соглашения о документах для API скриптов.
Синтаксис
objObjectPath = .Put_( _
[ ByVal iFlags ], _
[ ByVal objwbemNamedValueSet ] _
)
Параметры
-
iFlags [in, необязательный]
-
Этот параметр определяет, создает ли вызов или обновляет класс или экземпляр и возвращается ли вызов немедленно. Этот параметр может принимать следующие значения.
-
wbemChangeFlagUpdateCompatible (0 (0x0))
-
Позволяет обновлять класс, если нет производных классов и экземпляров для этого класса. Он также позволяет обновлять во всех случаях, если изменение связано только с неважными квалификаторами (например, квалификатор описания ). Это поведение по умолчанию для этого вызова и используется для совместимости с предыдущими версиями WMI. Если класс содержит экземпляры, обновление завершается сбоем.
-
wbemChangeFlagUpdateSafeMode (32 (0x20))
-
Позволяет обновлять классы, даже если существуют дочерние классы, если изменение не вызывает конфликтов с дочерними классами. Этот флаг можно использовать при добавлении нового свойства в базовый класс, который ранее не упоминался ни в одном из дочерних классов. Если класс содержит экземпляры, обновление завершается сбоем. Если класс содержит экземпляры, обновление завершается сбоем.
-
WbemChangeFlagUpdateForceMode (64 (0x40))
-
Этот флаг принудительно обновляет классы при наличии конфликтующих дочерних классов. Например, этот флаг принудительно обновляется, если квалификатор класса определен в дочернем классе, а базовый класс пытается добавить тот же квалификатор и конфликтует с существующим. В принудительном режиме этот конфликт будет устранен путем удаления конфликтующего квалификатора в дочернем классе. Если класс содержит экземпляры, обновление завершится ошибкой.
Использование принудительного режима для обновления статического класса приводит к удалению всех экземпляров этого класса. Принудительное обновление класса поставщика не приводит к удалению экземпляров класса .
-
wbemChangeFlagCreateOrUpdate (0 (0x0))
-
Приводит к созданию класса или экземпляра, если они не существуют, или перезаписи, если они уже существуют.
-
wbemChangeFlagCreateOnly (2 (0x2))
-
Используется только для создания. Вызов завершается ошибкой, если класс или экземпляр уже существует.
-
wbemChangeFlagUpdateOnly (1 (0x1))
-
Вызывает этот вызов для обновления. Класс или экземпляр должен существовать, чтобы вызов был успешным.
-
wbemFlagReturnImmediately (16 (0x10))
-
Вызывает немедленный возврат вызова.
-
wbemFlagReturnWhenComplete (0 (0x0))
-
Вызывает блокировку этого вызова до завершения запроса.
-
wbemFlagUseAmendedQualifiers (131072 (0x20000))
-
Заставляет WMI записывать данные изменения класса, а также определение базового класса. Дополнительные сведения о измененных квалификаторах см. в разделе Локализация сведений о классе WMI.
objwbemNamedValueSet [in, необязательный]
Как правило, это не определено. В противном случае это объект SWbemObjectPath , элементы которого представляют сведения контекста, которые могут использоваться поставщиком, обслуживающим запрос. Поставщик, который поддерживает или требует такие сведения, должен документировать имена распознаваемых значений, тип данных значения, допустимые значения и семантику.
Возвращаемое значение
Если вызов выполнен успешно, возвращается объект SWbemObjectPath . Этот объект содержит путь к объекту экземпляра или класса, который был успешно зафиксирован в WMI.
Коды ошибок
После завершения метода Put_ объект Err может содержать один из кодов ошибок из следующего списка.
-
wbemErrAccessDenied — 2147749891
-
Текущий пользователь не имеет разрешения на обновление экземпляра указанного класса.
-
wbemErrAlreadyExists — 2147749913 (0x80041019)
-
Был указан флаг wbemChangeFlagCreateOnly , но экземпляр уже существует.
-
wbemErrFailed — 2147749889 (0x80041001)
-
Незаданная ошибка.
-
wbemErrIllegalNull — 2147749898 (0x8004100A)
-
Для свойства, которое не может иметь значение Nothing, было указано значение Nothing. Примером такого свойства является свойство, помеченное квалификатором Key,Indexed или Not_Null.
-
wbemErrInvalidObject — 2147749908 (0x80041014)
-
Задан недопустимый экземпляр.
-
wbemErrInvalidParameter — 0x80041008
-
Указанный параметр недопустим.
-
wbemErrNotFound — 2147749890 (0x80041002)
-
Был указан флаг wbemChangeFlagUpdateOnly , но экземпляр или класс не существует.
-
wbemErrIncompleteClass — 2147749920 (0x80041020)
-
Для классов заданы не все обязательные свойства.
-
wbemErrOutOfMemory — 2147749894 (0x80041006)
-
Недостаточно памяти для завершения операции.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista |
Минимальная версия сервера |
Windows Server 2008 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
CLSID |
CLSID_SWbemObject |
IID |
IID_ISWbemObject |