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 |
|
Bibliothèque de types |
|
DLL |
|
CLSID |
CLSID_SWbemNamedValueSet |
IID |
IID_ISWbemNamedValueSet |