Objek SWbemNamedValueSet

Objek SWbemNamedValueSet adalah kumpulan objek SWbemNamedValue . Metode dan properti SWbemNamedValueSet digunakan terutama untuk mengirim informasi lebih lanjut ke penyedia saat mengirimkan panggilan tertentu ke WMI. Semua panggilan di SWbemServices, dan beberapa panggilan di SWbemObject, mengambil parameter opsional yang merupakan objek dari jenis ini. Klien dapat menambahkan informasi ke objek SWbemNamedValueSet , dan mengirim objek SWbemNamedValueSet dengan panggilan sebagai salah satu parameter. Objek ini dapat dibuat oleh panggilan VBScript CreateObject .

Untuk informasi selengkapnya, lihat Mengakses Koleksi.

Catatan

Penting - Jika memungkinkan, jangan gunakan mekanisme ini karena dapat merusak model akses seragam yang menjadi dasar WMI. Jika penyedia memang menggunakan mekanisme ini, penting bahwa mekanisme ini digunakan sesering mungkin. Jika penyedia memerlukan sejumlah besar informasi konteks yang sangat spesifik untuk menanggapi permintaan, semua klien harus dikodekan untuk memberikan informasi ini. Mekanisme ini memungkinkan Anda mengakses penyedia tersebut, jika perlu.

Objek SWbemNamedValueSet adalah kumpulan elemen SWbemNamedValue . Item ini ditambahkan ke koleksi menggunakan metode SWbemNamedValueSet.Add . Mereka dihapus menggunakan metode SWbemNamedValueSet.Remove dan diambil menggunakan metode SWbemNamedValueSet.Item . Anda dapat mengakses metode untuk mengisi informasi konteks apa pun yang diperlukan oleh penyedia dinamis. Setelah Anda memanggil salah satu metode SWbemServices , Anda dapat menggunakan kembali objek SWbemNamedValueSet untuk panggilan lain.

Penyedia yang mendasar menentukan informasi yang terkandung dalam objek SWbemNamedValueSet . WMI tidak menggunakan informasi, tetapi hanya meneruskannya ke penyedia. Penyedia harus menerbitkan informasi konteks yang mereka butuhkan untuk melayani permintaan.

Anggota

Objek SWbemNamedValueSet memiliki jenis anggota ini:

Metode

Objek SWbemNamedValueSet memiliki metode ini.

Metode Deskripsi
Menambahkan Menambahkan objek SWbemNamedValue ke koleksi.
Kloning Membuat salinan koleksi SWbemNamedValueSet ini.
DeleteAll Menghapus semua item dari koleksi, membuat objek SWbemNamedValueSet kosong.
Item Mengambil objek SWbemNamedValue dari koleksi. Ini adalah metode default objek.
Hapus Menghapus objek SWbemNamedValue dari koleksi.

Properti

Objek SWbemNamedValueSet memiliki properti ini.

Properti Jenis akses Deskripsi
Menghitung
Baca-saja
Jumlah item dalam koleksi.

Contoh

Sampel VBScript berikut menunjukkan manipulasi set nilai bernama, jika nilai bernama adalah jenis array.

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

Sampel Perl berikut menunjukkan manipulasi set nilai bernama, jika nilai bernama adalah jenis array.

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista
Server minimum yang didukung
Windows Server 2008
Header
Wbemdisp.h
Pustaka jenis
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemNamedValueSet
IID
IID_ISWbemNamedValueSet

Lihat juga

Membuat Skrip Objek API