SWbemPrivilegeSet 物件
SWbemPrivilegeSet物件是SWbemPrivilege物件的集合,該物件會要求 Windows Management Instrumentation (WMI) 物件的特定許可權。 請參閱 Privilege Constants中的許可權清單。 專案會使用 Add 和 AddAsString 方法新增至集合。 專案是使用 Item 方法從集合擷取,並使用 Remove 方法移除 。 VBScript CreateObject 方法呼叫無法建立此物件。 如需詳細資訊,請參閱 存取集合。
SWbemPrivilegeSet物件是特定物件的一組許可權覆寫要求。 使用此物件進行 API 呼叫時,會嘗試許可權覆寫要求。 SWbemPrivilegeSet物件不會定義目前使用者或進程可用的許可權。 換句話說,取得任何 WMI 物件的許可權,並不會識別在與 WMI 連線上所做的許可權設定,或物件傳遞至接收時生效的許可權設定。
成員
SWbemPrivilegeSet物件具有下列類型的成員:
方法
SWbemPrivilegeSet物件具有這些方法。
方法 | 描述 |
---|---|
加 | 使用WbemPrivilegeEnum常數,將SWbemPrivilege物件新增至SWbemPrivilegeSet集合。 |
AddAsString | 使用特殊許可權字串,將 SWbemPrivilege 物件新增至 SWbemPrivilegeSet 集合。 |
DeleteAll | 從集合中刪除擁有權限。 |
項目 | 從集合擷取 SWbemPrivilege 物件。 這是這個 物件的預設方法。 |
移除 | 從集合中移除 SWbemPrivilege 物件。 |
屬性
SWbemPrivilegeSet物件具有這些屬性。
屬性 | 存取類型 | 描述 |
---|---|---|
Count |
唯讀 |
集合中的項目數目 |
範例
下列 VBScript 程式碼範例會取得 SWbemPrivileges 物件,並依許可權值將所有可用的許可權新增至集合,如 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
下列 VBScript 程式碼範例示範如何使用 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
下列 Perl 程式碼範例示範如何使用 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";
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista |
最低支援的伺服器 |
Windows Server 2008 |
標頭 |
|
類型程式庫 |
|
DLL |
|
CLSID |
CLSID_SWbemPrivilegeSet |
IID |
IID_ISWbemPrivilegeSet |