SWbemObject.Put_ metodo

Il metodo Put_ di SWbemObject crea o aggiorna un'istanza o un oggetto classe a Strumentazione gestione Windows (WMI). È possibile usare questo metodo dopo aver modificato le proprietà o i metodi in un oggetto SWbemObject e le modifiche vengono scritte in WMI.

Per una spiegazione di questa sintassi, vedere Convenzioni di documento per l'API scripting.

Sintassi

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

Parametri

iFlags [in, facoltativo]

Questo parametro determina se la chiamata crea o aggiorna la classe o l'istanza e se la chiamata restituisce immediatamente. Questo parametro può accettare i valori seguenti.

wbemChangeFlagUpdateCompatible (0 (0x0))

Consente l'aggiornamento di una classe se non sono presenti classi derivate e non sono presenti istanze per tale classe. Consente anche gli aggiornamenti in tutti i casi se la modifica è solo per qualificatori non importanti (ad esempio, il qualificatore Descrizione ). Si tratta del comportamento predefinito per questa chiamata e viene usato per la compatibilità con le versioni precedenti di WMI. Se la classe ha istanze l'aggiornamento ha esito negativo.

wbemChangeFlagUpdateSafeMode (32 (0x20))

Consente gli aggiornamenti delle classi anche se sono presenti classi figlio se la modifica non causa conflitti con le classi figlio. È possibile usare questo flag quando si aggiunge una nuova proprietà a una classe di base non menzionata in precedenza nelle classi figlio. Se la classe ha istanze l'aggiornamento ha esito negativo. Se la classe ha istanze l'aggiornamento ha esito negativo.

WbemChangeFlagUpdateForceMode (64 (0x40))

Questo flag forza gli aggiornamenti delle classi quando esistono classi figlio in conflitto. Ad esempio, questo flag forza un aggiornamento se un qualificatore di classe è stato definito in una classe figlio e la classe base tenta di aggiungere lo stesso qualificatore e in conflitto con quello esistente. In modalità forzata questo conflitto verrà risolto eliminando il qualificatore in conflitto nella classe figlio. Se la classe ha istanze l'aggiornamento avrà esito negativo.

L'uso della modalità forza per aggiornare una classe statica comporta l'eliminazione di tutte le istanze di tale classe. Un aggiornamento forzato in una classe provider non elimina le istanze della classe.

wbemChangeFlagCreateOrUpdate (0 (0x0))

Causa la creazione della classe o dell'istanza se non esiste o sovrascrive se esiste già.

wbemChangeFlagCreateOnly (2 (0x2))

Usato solo per la creazione. La chiamata ha esito negativo se la classe o l'istanza esiste già.

wbemChangeFlagUpdateOnly (1 (0x1))

Causa l'aggiornamento di questa chiamata. È necessario che la classe o l'istanza esistano per il successo della chiamata.

wbemFlagReturnImmediately (16 (0x10))

Causa la restituzione immediata della chiamata.

wbemFlagReturnWhenComplete (0 (0x0))

Causa il blocco della chiamata fino al completamento della query.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Consente a WMI di scrivere dati di modifica della classe e la definizione della classe di base. Per altre informazioni sui qualificatori modificati, vedere Localizzazione delle informazioni sulla classe WMI.

objwbemNamedValueSet [in, facoltativo]

In genere, questo è indefinito. In caso contrario, si tratta di un oggetto SWbemObjectPath i cui elementi rappresentano le informazioni di contesto che possono essere usate dal provider che esegue la manutenzione della richiesta. Un provider che supporta o richiede tali informazioni deve documentare i nomi di valore riconosciuti, il tipo di dati del valore, i valori consentiti e la semantica.

Valore restituito

Se la chiamata ha esito positivo, viene restituito un oggetto SWbemObjectPath . Questo oggetto contiene il percorso dell'oggetto dell'istanza o della classe che è stato eseguito correttamente il commit a WMI.

Codici di errore

Al termine del metodo Put_ , l'oggetto Err può contenere uno dei codici di errore nell'elenco seguente.

wbemErrAccessDenied - 2147749891

L'utente corrente non dispone dell'autorizzazione per aggiornare un'istanza della classe specificata.

wbemErrAlreadyExists - 2147749913 (0x80041019)

Il flag wbemChangeFlagCreateOnly è stato specificato, ma l'istanza esiste già.

wbemErrFailed - 2147749889 (0x80041001)

Errore non specificato.

wbemErrIllegalNull - 2147749898 (0x8004100A)

Valore di Nothing specificato per una proprietà che potrebbe non essere Nothing. Un esempio di tale proprietà è uno contrassegnato da un qualificatore Key,Indexed o Not_Null.

wbemErrInvalidObject - 2147749908 (0x80041014)

L'istanza specificata non è valida.

wbemErrInvalidParameter - 0x80041008

Un parametro specificato non è valido.

wbemErrNotFound - 2147749890 (0x80041002)

Il flag wbemChangeFlagUpdateOnly è stato specificato, ma l'istanza o la classe non esiste.

wbemErrIncompleteClass - 2147749920 (0x80041020)

Le proprietà necessarie per le classi non sono tutte impostate.

wbemErrOutOfMemory - 2147749894 (0x80041006)

Memoria insufficiente per completare l'operazione.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Intestazione
Wbemdisp.h
Libreria dei tipi
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject

Vedi anche

SWbemObject

SWbemObjectPath.Class

SWbemProperty

SWbemQualifier