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 |
|
Pustaka jenis |
|
DLL |
|
CLSID |
CLSID_SWbemPrivilegeSet |
IID |
IID_ISWbemPrivilegeSet |