Oggetto SWbemPrivilegeSet

Un oggetto SWbemPrivilegeSet è un insieme di oggetti SWbemPrivilege in un oggetto SWbemSecurity che richiede privilegi specifici per un oggetto Strumentazione gestione Windows (WMI). Vedere l'elenco dei privilegi nelle costanti dei privilegi. Gli elementi vengono aggiunti alla raccolta usando i metodi Add e AddAsString . Gli elementi vengono recuperati dalla raccolta utilizzando il metodo Item e rimossi usando il metodo Remove . Questo oggetto non può essere creato dalla chiamata al metodo CreateObject VBScript. Per altre informazioni, vedere Accesso a una raccolta.

Un oggetto SWbemPrivilegeSet è un set di richieste di override dei privilegi per un oggetto specifico. Quando viene eseguita una chiamata API tramite questo oggetto, viene eseguito il tentativo di override delle richieste di override dei privilegi. L'oggetto SWbemPrivilegeSet non definisce i privilegi disponibili per l'utente o il processo corrente. In altre parole, il recupero dei privilegi per qualsiasi oggetto WMI non identifica le impostazioni dei privilegi effettuate sulla connessione a WMI o i privilegi applicati quando un oggetto viene recapitato a un sink.

Membri

L'oggetto SWbemPrivilegeSet dispone di questi tipi di membri:

Metodi

L'oggetto SWbemPrivilegeSet dispone di questi metodi.

Metodo Descrizione
Aggiungere Aggiunge un oggetto SWbemPrivilege all'insieme SWbemPrivilegeSet usando una costante WbemPrivilegeEnum .
AddAsString Aggiunge un oggetto SWbemPrivilege all'insieme SWbemPrivilegeSet usando una stringa di privilegi.
DeleteAll Elimina tutti i privilegi dalla raccolta.
Elemento Recupera un oggetto SWbemPrivilege dall'insieme. Questo è il metodo predefinito di questo oggetto.
Rimuovi Rimuove un oggetto SWbemPrivilege dall'insieme.

Proprietà

L'oggetto SWbemPrivilegeSet dispone di queste proprietà.

Proprietà Tipo di accesso Descrizione
Conteggio
Sola lettura
Numero di elementi nella raccolta.

Esempio

Nell'esempio di codice VBScript seguente viene ottenuto un oggetto SWbemPrivileges e vengono aggiunti tutti i privilegi disponibili alla raccolta in base al valore del privilegio, come definito in 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

Nell'esempio di codice VBScript seguente viene illustrato come aggiungere privilegi usando l'oggetto 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 

Nell'esempio di codice Perl seguente viene illustrato come aggiungere privilegi usando l'oggetto 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";
}

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Intestazione
Wbemdisp.h
Libreria dei tipi
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemPrivilegeSet
IID
IID_ISWbemPrivilegeSet

Vedi anche

Esecuzione di operazioni con privilegi

Esecuzione di operazioni con privilegi tramite VBScript

WbemPrivilegeEnum

Scripting di oggetti API

Costanti dei privilegi