Freigeben über


Objekt „SWbemNamedValueSet“

Ein SWbemNamedValueSet-Objekt ist eine Sammlung von SWbemNamedValue-Objekten. Die Methoden und Eigenschaften von SWbemNamedValueSet werden hauptsächlich verwendet, um beim Übermitteln von bestimmten Aufrufen an WMI weitere Informationen an Anbieter zu senden. Sämtliche Aufrufe in SWbemServices und einige Aufrufe in SWbemObject verwenden einen optionalen Parameter, der ein Objekt dieses Typs ist. Ein Client kann einem SWbemNamedValueSet-Objekt Informationen hinzufügen und das Objekt SWbemNamedValueSet mit dem Aufruf als einen der Parameter senden. Dieses Objekt kann durch den VBScript-Aufruf CreateObject erstellt werden.

Weitere Informationen finden Sie unter Zugreifen auf eine Sammlung.

Hinweis

Wichtig: Verwenden Sie diesen Mechanismus nach Möglichkeit nicht, weil dadurch das einheitliche Zugriffsmodell, das die Grundlage von WMI bildet, unterbrochen werden kann. Wenn ein Anbieter diesen Mechanismus verwendet, ist es wichtig, dass dies so sparsam wie möglich geschieht. Wenn ein Anbieter eine große Menge an hochspezifischen Kontextinformationen zum Reagieren auf eine Anforderung benötigt, müssen alle Clients für die Bereitstellung dieser Informationen codiert werden. Mit diesem Mechanismus können Sie bei Bedarf auf solche Anbieter zugreifen.

Ein SWbemNamedValueSet-Objekt ist eine Sammlung von SWbemNamedValue-Elementen. Diese Elemente werden der Sammlung mithilfe der Methode SWbemNamedValueSet.Add hinzugefügt. Sie werden mithilfe der Methode SWbemNamedValueSet.Remove entfernt und mithilfe der Methode SWbemNamedValueSet.Item abgerufen. Sie können auf die Methoden zugreifen, um kontextbezogene Informationen auszufüllen, die von einem dynamischen Anbieter benötigt werden. Nachdem Sie eine der SWbemServices-Methoden aufgerufen haben, können Sie das Objekt SWbemNamedValueSet für einen anderen Aufruf wiederverwenden.

Der zugrunde liegende Anbieter bestimmt die Informationen, die in einem SWbemNamedValueSet-Objekt enthalten sind. WMI nutzt die Informationen nicht, sondern leitet sie einfach weiter an den Anbieter. Anbieter müssen die Kontextinformationen veröffentlichen, die sie für Serviceanforderungen benötigen.

Member

Das Objekt SWbemNamedValueSet enthält die folgenden Membertypen:

Methoden

Das Objekt SWbemNamedValueSet enthält die folgenden Methoden.

Methode BESCHREIBUNG
Hinzufügen Fügt der Sammlung ein SWbemNamedValue-Objekt hinzu.
Clone Erstellt eine Kopie dieser SWbemNamedValueSet-Sammlung.
DeleteAll Entfernt alle Elemente aus der Auflistung, wodurch das Objekt SWbemNamedValueSet leer wird.
Element Ruft ein SWbemNamedValue-Objekt aus der Sammlung ab. Dies ist die Standardmethode für das Objekt.
Remove Entfernt ein SWbemNamedValue-Objekt aus der Sammlung.

Eigenschaften

Das Objekt SWbemNamedValueSet hat die folgenden Eigenschaften.

Eigenschaft Zugriffstyp BESCHREIBUNG
Count
Schreibgeschützt
Die Anzahl der Elemente in der Auflistung.

Beispiele

Im folgenden VBScript-Beispiel wird die Bearbeitung von benannten Wertsätzen gezeigt, falls der benannte Wert ein Arraytyp ist.

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

Im folgenden Perl-Beispiel wird die Bearbeitung von benannten Wertsätzen gezeigt, falls der benannte Wert ein Arraytyp ist.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
Windows Server 2008
Header
Wbemdisp.h
Typbibliothek
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemNamedValueSet
IID
IID_ISWbemNamedValueSet

Siehe auch

Objekte für die Skripterstellungs-API