Objet SWbemNamedValueSet

Un objet SWbemNamedValueSet est une collection d’objets SWbemNamedValue . Les méthodes et les propriétés de SWbemNamedValueSet sont principalement utilisées pour envoyer des informations supplémentaires aux fournisseurs lors de l’envoi de certains appels à WMI. Tous les appels dans SWbemServiceset certains appels dans SWbemObjectprennent un paramètre facultatif qui est un objet de ce type. Un client peut ajouter des informations à un objet SWbemNamedValueSet et envoyer l’objet SWbemNamedValueSet avec l’appel comme l’un des paramètres. Cet objet peut être créé par l’appel VBScript CreateObject .

Pour plus d’informations, consultez accès à une collection.

Notes

Important-si possible, n’utilisez pas ce mécanisme, car il peut rompre le modèle d’accès uniforme qui est la base de WMI. Si un fournisseur utilise ce mécanisme, il est important que ce mécanisme soit utilisé aussi avec modération que possible. Si un fournisseur a besoin d’une grande quantité d’informations de contexte hautement spécifiques pour répondre à une demande, tous les clients doivent être codés pour fournir ces informations. Ce mécanisme vous permet d’accéder à de tels fournisseurs, si nécessaire.

Un objet SWbemNamedValueSet est une collection d’éléments SWbemNamedValue . Ces éléments sont ajoutés à la collection à l’aide de la méthode SWbemNamedValueSet. Add . Elles sont supprimées à l’aide de la méthode SWbemNamedValueSet. Remove et récupérées à l’aide de la méthode SWbemNamedValueSet. Item . Vous pouvez accéder aux méthodes pour remplir toutes les informations de contexte requises par un fournisseur dynamique. Après avoir appelé l’une des méthodes SWbemServices , vous pouvez réutiliser l’objet SWbemNamedValueSet pour un autre appel.

Le fournisseur sous-jacent détermine les informations contenues dans un objet SWbemNamedValueSet . WMI n’utilise pas les informations, mais les transfère simplement au fournisseur. Les fournisseurs doivent publier les informations de contexte dont ils ont besoin pour traiter les demandes.

Membres

L’objet SWbemNamedValueSet possède les types de membres suivants :

Méthodes

L’objet SWbemNamedValueSet a ces méthodes.

Méthode Description
Complémentaires Ajoute un objet SWbemNamedValue à la collection.
Clone Effectue une copie de cette collection SWbemNamedValueSet .
DeleteAll Supprime tous les éléments de la collection, ce qui rend l’objet SWbemNamedValueSet vide.
Élément Récupère un objet SWbemNamedValue de la collection. Il s’agit de la méthode par défaut de l’objet.
Remove Supprime un objet SWbemNamedValue de la collection.

Propriétés

L’objet SWbemNamedValueSet a ces propriétés.

Propriété Type d’accès Description
Count
Lecture seule
Nombre d’éléments dans la collection

Exemples

L’exemple VBScript suivant illustre la manipulation des jeux de valeurs nommées, dans le cas où la valeur nommée est un type tableau.

Set Context = CreateObject("WbemScripting.SWbemNamedValueSet")

On Error Resume Next

Context.Add "n1", Array (1, 2, 3)
str = "The initial value of n1 is {"
for x=LBound(Context("n1")) to UBound(Context("n1"))
 str = str & Context("n1")(x)
 if x <> UBound(Context("n1")) Then
  str = str & ", "
 End if
next
str = str & "}"
WScript.Echo str

WScript.Echo ""

' report the value of an element of the context value
v = Context("n1")
WScript.Echo "By indirection the first element of n1 has value:",v(0)

' report the value directly
WScript.Echo "By direct access the first element of n1 has value:", Context("n1")(0)

' set the value of a single named value element
Context("n1")(1) = 11 
WScript.Echo "After direct assignment the first element of n1 has value:", Context("n1")(1)

' set the value of a single named value element
Set v = Context("n1")
v(1) = 345
WScript.Echo "After indirect assignment the first element of n1 has value:", Context("n1")(1)

' set the value of an entire context value
Context("n1") = Array (5, 34, 178871)
WScript.Echo "After direct array assignment the first element of n1 has value:", Context("n1")(1)

str = "After direct assignment the entire value of n1 is {"
for x=LBound(Context("n1")) to UBound(Context("n1"))
 str = str & Context("n1")(x)
 if x <> UBound(Context("n1")) Then
  str = str & ", "
 End if
next
str = str & "}"
WScript.Echo str

if Err <> 0 Then
 WScript.Echo Err.Description
 Err.Clear
End if

L’exemple perl suivant illustre la manipulation des jeux de valeurs nommées, dans le cas où la valeur nommée est un type tableau.

use strict;
use Win32::OLE;

my ( $Context, $str, $x, @v);

eval {$Context = new Win32::OLE 'WbemScripting.SWbemNamedValueSet'; };
unless($@)
{
 $Context->Add("n1", [1, 2, 3]);
 $str = "The initial value of n1 is {";
 for ($x = 0; $x < @{$Context->Item("n1")->{Value}}; $x++)
 {
  $str = $str.@{$Context->Item("n1")->{Value}}[$x];
  if ($x != (@{$Context->Item("n1")->{Value}}) - 1 )
  {
   $str = $str.", ";
  }
 }
 $str = $str."}";
 print $str,"\n\n";

 # report the value of an element of the context value
 @v = @{$Context->Item("n1")->{Value}};
 print "By indirection the first element of n1 has value:", $v[0], "\n";

 # report the value directly
 print "By direct access the first element of n1 has value:", @{$Context->Item("n1")->{Value}}[0], "\n";

 # set the value of a single named value element
 @{$Context->Item("n1")->{Value}}[1] = 11;
 print "After direct assignment the first element of n1 has value:", 
       @{$Context->Item("n1")->{Value}}[1], "\n";

 # set the value of a single named value element
 @v = @{$Context->Item("n1")->{Value}};
 $v[1] = 345;
 print "After indirect assignment the first element of n1 has value:", 
    @{$Context->Item("n1")->{Value}}[1], "\n";

 # set the value of an entire context value
 $Context->Item("n1")->{Value} = [5, 34, 178871];
 print "After direct array assignment the first element of n1 has value:", 
   @{$Context->Item("n1")->{Value}}[1], "\n";

 $str = "After direct assignment the entire value of n1 is {";
 for ($x = 0; $x < @{$Context->Item("n1")->{Value}}; $x++)
 {
  $str = $str.@{$Context->Item("n1")->{Value}}[$x];
  if ($x != (@{$Context->Item("n1")->{Value}}) - 1 )
  {
   $str = $str.", ";
  }
 }
 $str = $str."}";
 print $str,"\n";
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
En-tête
Wbemdisp. h
Bibliothèque de types
Wbemdisp. tlb
DLL
Wbemdisp.dll
CLSID
CLSID _ SWbemNamedValueSet
IID
IID _ ISWbemNamedValueSet

Voir aussi

Scripts d’objets d’API