metodo SWbemObject.Put_

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

Per una spiegazione di questa sintassi, vedere Document Conventions per l'API di 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, qualificatore Descrizione ). Questo è il comportamento predefinito per questa chiamata e viene usato per la compatibilità con le versioni precedenti di WMI. Se la classe ha istanze dell'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 base non menzionata in precedenza in nessuna delle classi figlio. Se la classe ha istanze dell'aggiornamento ha esito negativo. Se la classe ha istanze dell'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))

Fa sì che la classe o l'istanza venga creata se non esiste o sovrascritta se esiste già.

wbemChangeFlagCreateOnly (2 (0x2))

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

wbemChangeFlagUpdateOnly (1 (0x1))

Fa sì che questa chiamata venga aggiornata. La classe o l'istanza deve esistere affinché la chiamata venga eseguita correttamente.

wbemFlagReturnImmediately (16 (0x10))

Fa sì che la chiamata venga restituita immediatamente.

wbemFlagReturnWhenComplete (0 (0x0))

Determina il blocco di questa chiamata fino al completamento della query.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Fa sì che WMI scriva i 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 non è definito. In caso contrario, si tratta di un oggetto SWbemObjectPath i cui elementi rappresentano le informazioni di contesto che possono essere utilizzate dal provider che sta servendo la richiesta. Un provider che supporta o richiede tali informazioni deve documentare i nomi dei valori 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 di cui è stato eseguito il commit in WMI.

Codici di errore

Dopo il completamento 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)

È stato specificato il flag wbemChangeFlagCreateOnly , ma l'istanza esiste già.

wbemErrFailed - 2147749889 (0x80041001)

Errore non specificato.

wbemErrIllegalNull - 2147749898 (0x8004100A)

È stato specificato un valore Nothing per una proprietà che potrebbe non essere Nothing. Un esempio di tale proprietà è rappresentato 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)

È stato specificato il flag wbemChangeFlagUpdateOnly , ma l'istanza o la classe non esiste.

wbemErrIncompleteClass - 2147749920 (0x80041020)

Le proprietà obbligatorie per le classi non sono state impostate tutte.

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