Объект SWbemPrivilegeSet
Объект SWbemPrivilegeSet — это коллекция объектов SWbemPrivilege в объекте SWbemSecurity , запрашивающая определенные привилегии для объекта инструментария управления Windows (WMI). См. список привилегий в разделе Константы привилегий. Элементы добавляются в коллекцию с помощью методов Add и AddAsString . Элементы извлекаются из коллекции с помощью метода Item и удаляются с помощью метода Remove . Этот объект не может быть создан вызовом метода CreateObject VBScript. Дополнительные сведения см. в разделе Доступ к коллекции.
Объект SWbemPrivilegeSet — это набор запросов на переопределение привилегий для определенного объекта. При вызове API с помощью этого объекта предпринимается попытка переопределения привилегий. Объект SWbemPrivilegeSet не определяет привилегии, доступные текущему пользователю или процессу. Иными словами, получение привилегий для любого объекта WMI не определяет параметры привилегий, заданные при подключении к WMI, или привилегии, которые действуют при доставке объекта в приемник.
Элементы
Объект SWbemPrivilegeSet имеет следующие типы элементов:
Методы
Объект SWbemPrivilegeSet содержит следующие методы.
Метод | Описание |
---|---|
Добавить | Добавляет объект SWbemPrivilege в коллекцию SWbemPrivilegeSet с помощью константы WbemPrivilegeEnum . |
AddAsString | Добавляет объект SWbemPrivilege в коллекцию SWbemPrivilegeSet с помощью строки привилегий. |
УдалитьВсе | Удаляет все привилегии из коллекции. |
Элемент | Извлекает объект SWbemPrivilege из коллекции. Это метод по умолчанию для данного объекта. |
Удалить | Удаляет объект SWbemPrivilege из коллекции. |
Свойства
Объект SWbemPrivilegeSet имеет следующие свойства.
Свойство | Тип доступа | Описание |
---|---|---|
Рассчитывать |
Только для чтения |
Количество элементов в коллекции. |
Примеры
Следующий пример кода VBScript получает объект SWbemPrivileges и добавляет все доступные привилегии в коллекцию по значению privilege, как определено в 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 |