Objek SWbemPrivilegeSet

Objek SWbemPrivilegeSet adalah kumpulan objek SWbemPrivilege dalam objek SWbemSecurity yang meminta hak istimewa khusus untuk objek Instrumentasi Manajemen Windows (WMI). Lihat daftar hak istimewa dalam Privilege Constants. Item ditambahkan ke koleksi menggunakan metode Tambahkan dan AddAsString . Item diambil dari koleksi menggunakan metode Item , dan dihapus menggunakan metode Hapus . Objek ini tidak dapat dibuat oleh panggilan metode CreateObject VBScript. Untuk informasi selengkapnya, lihat Mengakses Koleksi.

Objek SWbemPrivilegeSet adalah sekumpulan permintaan penimpaan hak istimewa untuk objek tertentu. Ketika panggilan API dilakukan menggunakan objek ini, permintaan penimpaan hak istimewa akan dicoba. Objek SWbemPrivilegeSet tidak menentukan hak istimewa yang tersedia untuk pengguna atau proses saat ini. Dengan kata lain, mendapatkan hak istimewa untuk objek WMI apa pun tidak mengidentifikasi pengaturan hak istimewa yang dibuat pada koneksi ke WMI, atau hak istimewa yang berlaku ketika objek dikirimkan ke sink.

Anggota

Objek SWbemPrivilegeSet memiliki jenis anggota ini:

Metode

Objek SWbemPrivilegeSet memiliki metode ini.

Metode Deskripsi
Menambahkan Menambahkan objek SWbemPrivilege ke koleksi SWbemPrivilegeSet menggunakan konstanta WbemPrivilegeEnum .
AddAsString Menambahkan objek SWbemPrivilege ke koleksi SWbemPrivilegeSet menggunakan string hak istimewa.
DeleteAll Menghapus semua hak istimewa dari koleksi.
Item Mengambil objek SWbemPrivilege dari koleksi. Ini adalah metode default dari objek ini.
Hapus Menghapus objek SWbemPrivilege dari koleksi.

Properti

Objek SWbemPrivilegeSet memiliki properti ini.

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

Contoh

Contoh kode VBScript berikut mendapatkan objek SWbemPrivileges dan menambahkan semua hak istimewa yang tersedia ke koleksi dengan nilai hak istimewa, seperti yang didefinisikan dalam WbemPrivilegeEnum.

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" _
    & strComputer & "\root\cimv2")
set colPrivileges = objWMIService.Security_.Privileges
For I = 1 To 27
colPrivileges.Add(I)
Next
' Display information about each privilege 
For Each objItem In colPrivileges
wscript.echo objItem.Identifier & vbtab & objItem.Name _
    & vbtab & objItem.Displayname _
    & vbtab & "Enabled = " & objItem.IsEnabled
Next

Contoh kode VBScript berikut menunjukkan cara menambahkan hak istimewa menggunakan objek SWbemPrivilegeSet .

on error resume next

const wbemPrivilegeSecurity = 8
const wbemPrivilegeDebug = 20

set locator = CreateObject("WbemScripting.SWbemLocator")

' Add a single privilege using SWbemPrivilegeSet.Add

locator.Security_.Privileges.Add wbemPrivilegeSecurity 
Set Privilege = locator.Security_.Privileges(wbemPrivilegeSecurity)
WScript.Echo Privilege.Name

' Attempt to add an illegal privilege using SWbemPrivilegeSet.Add
locator.Security_.Privileges.Add 6535
if err <> 0 then
 WScript.Echo "0x" & Hex(Err.Number), Err.Description, Err.Source
 err.clear
end if 

locator.Security_.Privileges.Add wbemPrivilegeDebug 

locator.Security_.Privileges(wbemPrivilegeDebug).IsEnabled = false

' Add a single privilege using SWbemPrivilegeSet.AddAsString

Set Privilege = locator.Security_.Privileges.AddAsString ("SeChangeNotifyPrivilege")
WScript.Echo Privilege.Name

' Attempt to add an illegal privilege using SWbemPrivilegeSet.AddAsString
locator.Security_.Privileges.AddAsString "SeChungeNotifyPrivilege"
if err <> 0 then
 WScript.Echo "0x" & Hex(Err.Number), Err.Description, Err.Source
 err.clear
end if 

WScript.Echo ""
for each Privilege in locator.Security_.Privileges
 WScript.Echo "[" & Privilege.DisplayName & "]", Privilege.Identifier, Privilege.Name, Privilege.IsEnabled
next

if err <> 0 then
 WScript.Echo Err.Number, Err.Description, Err.Source
end if 

Contoh kode Perl berikut menunjukkan cara menambahkan hak istimewa menggunakan objek SWbemPrivilegeSet .

use strict;
use Win32::OLE;

close(STDERR);

my ($locator, $Privilege);
my $wbemPrivilegeSecurity = 8;
my $wbemPrivilegeDebug = 20;

eval { $locator = new Win32::OLE 'WbemScripting.SWbemLocator';};

if (!$@ && defined $locator)
{
 # Add a single privilege using SWbemPrivilegeSet.Add
 $locator->{Security_}->{Privileges}->Add($wbemPrivilegeSecurity);
 $Privilege = $locator->{Security_}->Privileges($wbemPrivilegeSecurity);
 print "\n", $Privilege->{Name}, "\n\n";

 # Attempt to add an illegal privilege using SWbemPrivilegeSet.Add
 eval { $locator->{Security_}->{Privileges}->Add(6535); };
 print Win32::OLE->LastError, "\n" if ($@ || Win32::OLE->LastError);

 $locator->{Security_}->{Privileges}->Add($wbemPrivilegeDebug); 
 $locator->{Security_}->Privileges($wbemPrivilegeDebug)->{IsEnabled} = 0;

 # Add a single privilege using SWbemPrivilegeSet.AddAsString
 $Privilege = $locator->{Security_}->{Privileges}->AddAsString ("SeChangeNotifyPrivilege");
 print "\n", $Privilege->{Name}, "\n\n";

 # Attempt to add an illegal privilege using SWbemPrivilegeSet.AddAsString
 eval {$locator->{Security_}->{Privileges}->AddAsString ("SeChungeNotifyPrivilege"); };
 print Win32::OLE->LastError, "\n" if ($@ || Win32::OLE->LastError);
 print "\n";

 foreach $Privilege (in {$locator->{Security_}->{Privileges}})
 {
  printf "[%s] %d %s %d \n" , $Privilege->{DisplayName}, $Privilege->{Identifier}, $Privilege->{Name}, $Privilege->{IsEnabled};
 }
}
else
{
 print 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_SWbemPrivilegeSet
IID
IID_ISWbemPrivilegeSet

Lihat juga

Menjalankan Operasi Istimewa

Menjalankan Operasi Istimewa Menggunakan VBScript

WbemPrivilegeEnum

Membuat Skrip Objek API

Konstanta Hak Istimewa