Método SWbemObject.Put_

El método Put_ de SWbemObject crea o actualiza una instancia o un objeto de clase a Instrumental de administración de Windows (WMI). Puede usar este método después de modificar las propiedades o métodos de un SWbemObject, y los cambios se escriben en WMI.

Para obtener una explicación de esta sintaxis, vea Convenciones de documentación para la API de scripting.

Sintaxis

objObjectPath = .Put_( _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ] _
)

Parámetros

iFlags [in, opcional]

Este parámetro determina si la llamada crea o actualiza la clase o instancia y si la llamada devuelve inmediatamente. Este parámetro puede aceptar los valores siguientes.

wbemChangeFlagUpdateCompatible (0 (0x0))

Permite actualizar una clase si no hay clases derivadas y ninguna instancia de esa clase. También permite actualizaciones en todos los casos si el cambio es solo para calificadores no importantes (por ejemplo, el calificador Description). Este es el comportamiento predeterminado de esta llamada y se usa para la compatibilidad con versiones anteriores de WMI. Si la clase tiene instancias, se produce un error en la actualización.

wbemChangeFlagUpdateSafeMode (32 (0x20))

Permite actualizaciones de clases incluso si hay clases secundarias siempre y cuando el cambio no cause ningún conflicto con las clases secundarias. Se puede usar esta marca para agregar una nueva propiedad a la clase base que no se mencionó anteriormente en ninguna de las clases secundarias. Si la clase tiene instancias, se produce un error en la actualización. Si la clase tiene instancias, se produce un error en la actualización.

WbemChangeFlagUpdateForceMode (64 (0x40))

Esta marca fuerza la actualización de las clases cuando existen clases secundarias en conflicto. Por ejemplo, esta marca fuerza una actualización si se define un calificador de clase en una clase secundaria y la clase base intenta agregar el mismo calificador que entra en conflicto con el existente. En este modo, el conflicto se resolvería eliminando el calificador en conflicto en la clase secundaria. Si la clase tiene instancias, se produce un error en la actualización.

El uso del modo force para actualizar una clase estática da como resultado la eliminación de todas las instancias de esa clase. Una actualización forzada en una clase de proveedor no elimina instancias de la clase.

wbemChangeFlagCreateOrUpdate (0 (0x0))

Hace que la clase o instancia se cree si no existe o se sobrescribe si ya existe.

wbemChangeFlagCreateOnly (2 (0x2))

Se usa solo para la creación. Se produce un error en la llamada si la clase ya existe.

wbemChangeFlagUpdateOnly (1 (0x1))

Hace que esta llamada se actualice. La clase o la instancia debe existir para que la llamada se realice correctamente.

wbemFlagReturnImmediately (16 (0x10))

Hace que la llamada se devuelva inmediatamente.

wbemFlagReturnWhenComplete (0 (0x0))

Provoca que esta llamada se bloquee hasta que se complete la consulta.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Hace que WMI escriba datos de modificación de clase junto con la definición de clase base. Para más información sobre los calificadores modificados, consulte Localización de información de clase WMI.

objwbemNamedValueSet [in, optional]

Normalmente, esto no está definido. De lo contrario, se trata de un objeto SWbemObjectPath cuyos elementos representan la información de contexto que puede usar el proveedor que atiende la solicitud. Un proveedor que admita o necesite esa información debe documentar los nombres de valor reconocidos, el tipo de datos del valor, los valores permitidos y la semántica.

Valor devuelto

Si la llamada se realiza correctamente, se devolverá un objeto SWbemObjectPath. Este objeto contiene la ruta de acceso del objeto de la instancia o clase que se ha confirmado correctamente en WMI.

Códigos de error

Después de completar el método Put_, el objeto Err puede contener uno de los códigos de error de la lista siguiente.

wbemErrAccessDenied: 2147749891

Si se devuelve este valor, el usuario actual no tiene permiso para actualizar una instancia de la clase que se especifica.

wbemErrAlreadyExists: 2147749913 (0x80041019)

Se especificó el indicador wbemChangeFlagCreateOnly, pero la instancia ya existe.

wbemErrFailed: 2147749889 (0x80041001)

Error no especificado.

wbemErrIllegalNull: 2147749898 (0x8004100A)

Se especificó un valor de Nothing (Nada) para una propiedad que puede no ser Nothing. Un ejemplo de esta propiedad es uno marcado por un calificador Key, Indexed o Not_Null.

wbemErrInvalidObject: 2147749908 (0x80041014)

La instancia especificada no es válida.

wbemErrInvalidParameter: 0x80041008

Un parámetro especificado no es válido.

wbemErrNotFound: 2147749890 (0x80041002)

Se especificó la marca wbemChangeFlagUpdateOnly, pero la instancia o la clase no existe.

wbemErrIncompleteClass: 2147749920 (0x80041020)

No se han establecido todas las propiedades necesarias para las clases.

wbemErrOutOfMemory: 2147749894 (0x80041006)

No hay suficiente memoria para completar la operación.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Encabezado
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
Archivo DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject

Consulte también

SWbemObject

SWbemObjectPath.Class

SWbemProperty

SWbemQualifier