Objet SWbemNamedValueSet

Un objet SWbemNamedValueSet est une collection d’objets SWbemNamedValue. Les méthodes et propriétés de SWbemNamedValueSet sont principalement utilisées pour envoyer plus d’informations aux fournisseurs lors de l’envoi de certains appels à WMI. Tous les appels dans SWbemServices et certains appels dans SWbemObject prennent 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 ne peut pas ê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é avec le plus de parcimonie possible. Si un fournisseur a besoin d’une grande quantité d’informations de contexte très spécifiques pour répondre à une requête, tous les clients doivent être codés pour fournir ces informations. Ce mécanisme vous permet d’accéder à ces 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. Ils sont supprimés à l’aide de la méthode SWbemNamedValueSet.Remove et récupérés à l’aide de la méthode SWbemNamedValueSet.Item. Vous pouvez accéder aux méthodes pour renseigner 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 de service.

Membres

L’objet SWbemNamedValue présente les types de membres suivants :

Méthodes

L’objet SWbemNamedValueSet possède ces méthodes.

Méthode Description
Ajouter Ajoute un objet SWbemNamedValue à cette collection.
Clone Effectue une copie de cette collection SWbemNamedValueSet.
DeleteAll Supprime tous les éléments de la collection, rendant l’objet SWbemNamedValueSet vide.
Élément Récupère un objet SWbemNamedValue de la collection. C’est la méthode par défaut de l’objet.
Supprimer Supprime un objet SWbemNamedValue de la collection.

Propriétés

L’objet SWbemNamedValueSet possède 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 de jeux de valeurs nommées, dans le cas où la valeur nommée est un type de 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 de jeux de valeurs nommées, dans le cas où la valeur nommée est un type de 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

Objets de l’API de script