Objeto SWbemNamedValueSet

Un objeto SWbemNamedValueSet es una colección de objetos SWbemNamedValue. Los métodos y propiedades de SWbemNamedValueSet se usan principalmente para enviar más información a los proveedores al enviar determinadas llamadas a WMI. Todas las llamadas en SWbemServices y algunas llamadas en SWbemObject toman un parámetro opcional que es un objeto de este tipo. Un cliente puede agregar información a un objeto SWbemNamedValueSet y enviar el objeto SWbemNamedValueSet con la llamada como uno de los parámetros. La llamada CreateObject de VBScript puede crear este objeto.

Para más información, consulte Acceso a una colección.

Nota

Importante: Si es posible, no use este mecanismo, porque puede interrumpir el modelo de acceso uniforme fundamental de WMI. Si un proveedor usa este mecanismo, es importante que lo haga con moderación. Si un proveedor requiere una gran cantidad de información de contexto altamente específica para responder a una solicitud, todos los clientes deben codificarse para proporcionar esta información. Este mecanismo permite acceder a los proveedores, si es necesario.

Un objeto SWbemNamedValueSet es una colección de elementos SWbemNamedValue. Estos elementos se agregan a la colección mediante el método SWbemNamedValueSet.Add. Se quitan mediante el método SWbemNamedValueSet.Remove y se recuperan mediante el método SWbemNamedValueSet.Item. Puede acceder a los métodos para rellenar cualquier información de contexto que requiera un proveedor dinámico. Después de llamar a uno de los métodos SWbemServices, puede reutilizar el objeto SWbemNamedValueSet para otra llamada.

El proveedor subyacente determina la información que contienen los objetos SWbemNamedValueSet. WMI no utiliza la información, simplemente se la reenvía al proveedor. Los proveedores deben publicar la información de contexto que necesiten para las solicitudes de servicio.

Miembros

El objeto SWbemNamedValueSet contiene estos tipos de elementos:

Métodos

El objeto SWbemNamedValueSet tiene estos métodos.

Método Descripción
Sumar Agrega un objeto SWbemNamedValue a la colección.
Clone Realiza una copia de esta colección SWbemNamedValueSet.
DeleteAll Quita todos los elementos de la colección, lo que hace que el objeto SWbemNamedValueSet quede vacío.
Elemento Recupera un objeto SWbemNamedValue de la colección. Este es el método predeterminado del objeto.
Quitar Recupera un objeto SWbemNamedValue de la colección.

Propiedades

El objeto SWbemNamedValueSet tiene estas propiedades.

Propiedad Tipo de acceso Descripción
Count
Solo lectura
Número de elementos de la colección.

Ejemplos

En el siguiente ejemplo de VBScript se muestra la manipulación de conjuntos de valores con nombre, en caso de que el valor con nombre sea de tipo matriz.

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

En el siguiente ejemplo de Perl se muestra la manipulación de conjuntos de valores con nombre, en caso de que el valor con nombre sea de tipo matriz.

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";
}

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Encabezado
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
Archivo DLL
Wbemdisp.dll
CLSID
CLSID_SWbemNamedValueSet
IID
IID_ISWbemNamedValueSet

Consulte también

Objetos de API de scripting