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 |
|
Typbibliothek |
|
DLL |
|
CLSID |
CLSID_SWbemNamedValueSet |
IID |
IID_ISWbemNamedValueSet |