Объект Свбемнамедвалуесет

Объект свбемнамедвалуесет — это коллекция объектов свбемнамедвалуе . Методы и свойства свбемнамедвалуесет используются для отправки дополнительных сведений поставщикам при отправке определенных вызовов WMI. Все вызовы в SwbemServicesи некоторые вызовы в SWbemObjectпринимают необязательный параметр, который является объектом этого типа. Клиент может добавить сведения в объект свбемнамедвалуесет и отправить объект свбемнамедвалуесет с вызовом в качестве одного из параметров. Этот объект может быть создан вызовом метода CreateObject VBScript.

Дополнительные сведения см. в разделе доступ к коллекции.

Примечание

Важно! если возможно, не используйте этот механизм, так как он может нарушить унифицированную модель доступа, которая является основанием инструментария WMI. Если поставщик использует этот механизм, важно, чтобы этот механизм использовался как можно реже. Если поставщику требуется большой объем строго специфической контекстной информации для ответа на запрос, все клиенты должны быть написаны для предоставления этих сведений. Этот механизм позволяет при необходимости получить доступ к таким поставщикам.

Объект свбемнамедвалуесет — это коллекция элементов свбемнамедвалуе . Эти элементы добавляются в коллекцию с помощью метода свбемнамедвалуесет. Add . Они удаляются с помощью метода свбемнамедвалуесет. Remove и извлекаются с помощью метода свбемнамедвалуесет. Item . Вы можете получить доступ к методам, чтобы заполнить любые сведения о контексте, необходимые для динамического поставщика. После вызова одного из методов SwbemServices можно повторно использовать объект свбемнамедвалуесет для другого вызова.

Базовый поставщик определяет сведения, содержащиеся в объекте свбемнамедвалуесет . Инструментарий WMI не использует эти сведения, но просто пересылает его поставщику. Поставщики должны публиковать сведения о контексте, необходимые им для запросов на обслуживание.

Элементы

Объект свбемнамедвалуесет имеет следующие типы членов:

Методы

Объект свбемнамедвалуесет содержит эти методы.

Метод Описание
Включить Добавляет объект свбемнамедвалуе в коллекцию.
Клонировать Создает копию этой коллекции свбемнамедвалуесет .
DeleteAll Удаляет все элементы из коллекции, делая объект свбемнамедвалуесет пустым.
Элемент Извлекает объект свбемнамедвалуе из коллекции. Это метод объекта по умолчанию.
Удалить Удаляет объект свбемнамедвалуе из коллекции.

Свойства

Объект свбемнамедвалуесет имеет следующие свойства.

Свойство Тип доступа Описание
Count
Только для чтения
Количество элементов в коллекции.

Примеры

В следующем примере VBScript демонстрируется работа с именованными наборами значений в случае, если именованное значение является типом массива.

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

В следующем образце Perl показано управление именованными наборами значений в случае, если именованное значение является типом массива.

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

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Заголовок
Wbemdisp. h
Библиотека типов
Wbemdisp. tlb
DLL
Wbemdisp.dll
CLSID
_СВБЕМНАМЕДВАЛУЕСЕТ CLSID
IID
IID _ исвбемнамедвалуесет

См. также раздел

Создание скриптов для объектов API