SWbemPrivilegeSet (objeto)
Un objeto SWbemPrivilegeSet es una colección de objetos SWbemPrivilege en un objeto SWbemSecurity que solicita privilegios específicos para un objeto de Instrumental de administración de Windows (WMI). Consulte la lista de privilegios en Constantes de privilegios. Se agregan elementos a la colección mediante los métodos Add y AddAsString. Se recuperan elementos de la colección mediante el método Item y se quitan mediante el método Remove. Este objeto no se puede crear mediante la llamada al método CreateObject de VBScript. Para más información, consulte Acceso a una colección.
Un objeto SWbemPrivilegeSet es un conjunto de solicitudes de invalidación de privilegios para un objeto específico. Cuando se realiza una llamada API mediante este objeto, se intentan las solicitudes de invalidación de privilegios. El objeto SWbemPrivilegeSet no define los privilegios disponibles para el usuario o proceso actual. En otras palabras, la obtención de los privilegios para cualquier objeto WMI no identifica la configuración de privilegios realizada en la conexión a WMI o los privilegios en vigor cuando se entrega un objeto a un receptor.
Miembros
El objeto SWbemNamedValue contiene estos tipos de elementos:
Métodos
El objeto SWbemPrivilegeSet tiene estos métodos.
Método | Descripción |
---|---|
Sumar | Agrega un objeto SWbemPrivilege a la colección SWbemPrivilegeSet mediante una constante WbemPrivilegeEnum. |
AddAsString | Agrega un objeto SWbemPrivilege a la colección SWbemPrivilegeSet mediante una cadena de privilegios. |
DeleteAll | Elimina todos los privilegios de la colección. |
Elemento | Recupera un objeto SWbemPrivilege de la colección. Este es el método predeterminado de este objeto. |
Quitar | Quita un objeto SWbemPrivilege de la colección. |
Propiedades
El objeto SWbemPrivilegeSet tiene estas propiedades.
Propiedad | Tipo de acceso | Descripción |
---|---|---|
Count |
Solo lectura |
Número de elementos de la colección. |
Ejemplos
En el siguiente ejemplo de código de VBScript se obtiene un objeto SWbemPrivileges y se agregan todos los privilegios disponibles a la colección por valor de privilegio, como se define en 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
En el siguiente ejemplo de código de VBScript se muestra cómo agregar privilegios mediante el 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
En el siguiente ejemplo de código de Perl se muestra cómo agregar privilegios mediante el 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 | Value |
---|---|
Cliente mínimo compatible |
Windows Vista |
Servidor mínimo compatible |
Windows Server 2008 |
Encabezado |
|
Biblioteca de tipos |
|
Archivo DLL |
|
CLSID |
CLSID_SWbemPrivilegeSet |
IID |
IID_ISWbemPrivilegeSet |