Freigeben über


SWbemPrivilegeSet-Objekt

Ein SWbemPrivilegeSet-Objekt ist eine Sammlung von SWbemPrivilege-Objekten in einem SWbemSecurity-Objekt, das bestimmte Berechtigungen für ein Objekt der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) anfordert. Weitere Informationen finden Sie in der Liste der Berechtigungen unter Berechtigungskonstanten. Elemente werden der Sammlung mit den Methoden Add und AddAsString hinzugefügt. Elemente werden mit der Methode Item aus der Sammlung abgerufen und mit der Methode Remove entfernt. Dieses Objekt kann nicht durch den VBScript-Methodenaufruf CreateObject erstellt werden. Weitere Informationen finden Sie unter Zugreifen auf eine Sammlung.

Ein SWbemPrivilegeSet-Objekt ist ein Satz von Anforderungen zur Außerkraftsetzung von Berechtigungen für ein bestimmtes Objekt. Wenn ein API-Aufruf mit diesem Objekt erfolgt, wird versucht, die Anforderungen zur Außerkraftsetzung von Berechtigungen auszuführen. Das SWbemPrivilegeSet-Objekt definiert nicht die für den aktuellen Benutzer oder Prozess verfügbaren Berechtigungen. Anders ausgedrückt: Das Abrufen der Berechtigungen für ein WMI-Objekt identifiziert nicht die für die Verbindung mit WMI vorgenommenen Berechtigungseinstellungen oder die bei der Übermittlung eines Objekts an eine Senke geltenden Berechtigungen.

Member

Das SWbemPrivilegeSet-Objekt weist die folgenden Typen von Membern auf:

Methoden

Das SWbemPrivilegeSet-Objekt verfügt über die folgenden Methoden.

Methode BESCHREIBUNG
Hinzufügen Fügt der SWbemPrivilegeSet-Sammlung mit einer WbemPrivilegeEnum-Konstante ein SWbemPrivilege-Objekt hinzu.
AddAsString Fügt der SWbemPrivilegeSet-Sammlung mit einer Berechtigungszeichenfolge ein SWbemPrivilege-Objekt hinzu.
DeleteAll Löscht alle Berechtigungen aus der Sammlung.
Element Ruft ein SWbemPrivilege-Objekt aus der Sammlung ab. Dies ist die Standardmethode für dieses Objekt.
Remove Entfernt ein SWbemPrivilege-Objekt aus der Sammlung.

Eigenschaften

Das SWbemPrivilegeSet-Objekt weist die folgenden Eigenschaften auf.

Eigenschaft Zugriffstyp BESCHREIBUNG
Count
Schreibgeschützt
Die Anzahl der Elemente in der Auflistung.

Beispiele

Im folgenden VBScript-Codebeispiel wird ein „SWbemPrivileges“-Objekt abgerufen, und der Sammlung werden alle verfügbaren Berechtigungen nach dem in WbemPrivilegeEnum definierten Berechtigungswert hinzugefügt.

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

Im folgenden VBScript-Codebeispiel wird veranschaulicht, wie Berechtigungen mit dem SWbemPrivilegeSet-Objekt hinzugefügt werden.

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 

Im folgenden Perl-Codebeispiel wird veranschaulicht, wie Berechtigungen mit dem SWbemPrivilegeSet-Objekt hinzugefügt werden.

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";
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
Windows Server 2008
Header
Wbemdisp.h
Typbibliothek
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemPrivilegeSet
IID
IID_ISWbemPrivilegeSet

Weitere Informationen

Ausführen von privilegierten Vorgängen

Ausführen von privilegierten Vorgängen mit VBScript

WbemPrivilegeEnum

Objekte für die Skripterstellungs-API

Berechtigungskonstanten