Objet SWbemPrivilegeSet
Un objet SWbemPrivilegeSet est une collection d’objets SWbemPrivilege dans un objet SWbemSecurity qui demande des privilèges spécifiques pour un objet WMI (Windows Management Instrumentation). Consultez la liste des privilèges dans Constantes de privilèges. Les éléments sont ajoutés à la collection à l’aide des méthodes Add et AddAsString. Les éléments sont récupérés de la collection à l’aide de la méthode Item et supprimés à l’aide de la méthode Remove. Cet objet ne peut pas être créé par l’appel de méthode CreateObject VBScript. Pour plus d’informations, consultez Accès à une collection.
Un objet SWbemPrivilegeSet est un ensemble de demandes de remplacement de privilèges pour un objet spécifique. Lorsqu’un appel d’API est effectué à l’aide de cet objet, les demandes de remplacement de privilèges sont tentées. L’objet SWbemPrivilegeSet ne définit pas les privilèges disponibles pour l’utilisateur ou le processus actuel. En d’autres termes, l’obtention des privilèges d’un objet WMI n’identifie pas les paramètres de privilèges qui sont effectués lors de la connexion à WMI, ni les privilèges en vigueur lorsqu’un objet est remis à un récepteur.
Membres
L’objet SWbemPrivilegeSet présente les types de membres suivants :
Méthodes
L’objet SWbemPrivilegeSet possède ces méthodes.
Méthode | Description |
---|---|
Ajouter | Ajoute un objet SWbemPrivilege à la collection SWbemPrivilegeSet à l’aide d’une constante WbemPrivilegeEnum. |
AddAsString | Ajoute un objet SWbemPrivilege à la collection SWbemPrivilegeSet à l’aide d’une chaîne de privilèges. |
DeleteAll | Supprime tous les privilèges de la collection. |
Élément | Récupère un objet SWbemPrivilege de la collection. Il s'agit de la méthode par défaut de cet objet. |
Supprimer | Supprime un objet SWbemPrivilege de la collection. |
Propriétés
L’objet SWbemPrivilegeSet possède ces propriétés.
Propriété | Type d’accès | Description |
---|---|---|
Count |
Lecture seule |
Nombre d’éléments dans la collection |
Exemples
L’exemple de code VBScript suivant obtient un objet SWbemPrivileges et ajoute tous les privilèges disponibles à la collection par valeur de privilège, comme défini dans 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
L’exemple de code VBScript suivant montre comment ajouter des privilèges à l’aide de l’objet 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
L’exemple de code Perl suivant montre comment ajouter des privilèges à l’aide de l’objet 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";
}
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista |
Serveur minimal pris en charge |
Windows Server 2008 |
En-tête |
|
Bibliothèque de types |
|
DLL |
|
CLSID |
CLSID_SWbemPrivilegeSet |
IID |
IID_ISWbemPrivilegeSet |