Objeto SWbemPrivilegeSet
Um objeto SWbemPrivilegeSet é uma coleção de objetos SWbemPrivilege em um objeto SWbemSecurity que solicita privilégios específicos para um objeto de WMI (Instrumentação de Gerenciamento do Windows). Consulte a lista de privilégios em Constantes de Privilégio. Itens são adicionados à coleção usando os métodos Add e AddAsString. Itens são recuperados da coleção usando o método Item e removidos usando o método Remove. Esse objeto não pode ser criado pela chamada de método CreateObject do VBScript. Para obter mais informações, consulte Acessar uma coleção.
Um objeto SWbemPrivilegeSet é um conjunto de solicitações de substituição de privilégio para um objeto específico. Quando uma chamada à API é feita usando esse objeto, solicitações de substituição de privilégio são tentadas. O objeto SWbemPrivilegeSet não define os privilégios disponíveis para o usuário ou o processo atual. Em outras palavras, obter os privilégios de qualquer objeto do WMI não identifica as configurações de privilégio feitas na conexão com o WMI nem os privilégios em vigor quando um objeto é entregue a um coletor.
Membros
O objeto SWbemPrivilegeSet tem estes tipos de membros:
Métodos
O objeto SWbemPrivilegeSet tem esses métodos.
Método | Descrição |
---|---|
Adicionar | Adiciona um objeto SWbemPrivilege à coleção SWbemPrivilegeSet usando uma constante WbemPrivilegeEnum. |
AddAsString | Adiciona um objeto SWbemPrivilege à coleção SWbemPrivilegeSet usando uma cadeia de caracteres de privilégio. |
DeleteAll | Exclui os privilégios da coleção. |
Item | Recupera um objeto SWbemPrivilege da coleção. Esse é o método padrão do objeto . |
Remover | Remove um objeto SWbemPrivilege da coleção. |
Propriedades
O objeto SWbemPrivilegeSet tem essas propriedades.
Propriedade | Tipo de acesso | Descrição |
---|---|---|
Contagem |
Somente leitura |
Número de itens na coleção. |
Exemplos
O exemplo de código VBScript a seguir obtém um objeto SWbemPrivileges e adiciona todos os privilégios disponíveis à coleção por valor de privilégio, conforme definido em 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
O exemplo de código VBScript a seguir demonstra como adicionar privilégios usando o objeto 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
O exemplo de código Perl a seguir demonstra como adicionar privilégios usando o objeto 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";
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows Vista |
Servidor mínimo com suporte |
Windows Server 2008 |
Cabeçalho |
|
Biblioteca de tipos |
|
DLL |
|
CLSID |
CLSID_SWbemPrivilegeSet |
IID |
IID_ISWbemPrivilegeSet |