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 |
|
| Bibliothèque de types |
|
| DLL |
|
| CLSID |
CLSID _ SWbemNamedValueSet |
| IID |
IID _ ISWbemNamedValueSet |