SWbemPrivilegeSet 개체
SWbemPrivilegeSet 개체는 WMI(Windows Management Instrumentation) 개체에 대한 특정 권한을 요청하는 SWbemSecurity 개체의 SWbemPrivilege 개체 컬렉션입니다. 권한 상수의 권한 목록을 참조하세요. 항목은 Add 및 AddAsString 메서드를 사용하여 컬렉션에 추가됩니다. 항목은 Item 메서드를 사용하여 컬렉션에서 검색되고 Remove 메서드를 사용하여 제거됩니다. 이 개체는 VBScript CreateObject 메서드 호출로 만들 수 없습니다. 자세한 내용은 컬렉션 액세스를 참조하세요.
SWbemPrivilegeSet 개체는 특정 개체에 대한 권한 재정의 요청 집합입니다. 이 개체를 사용하여 API 호출이 수행되면 권한 재정의 요청이 시도됩니다. SWbemPrivilegeSet 개체는 현재 사용자 또는 프로세스에 사용할 수 있는 권한을 정의하지 않습니다. 즉, WMI 개체에 대한 권한을 획득해도 WMI에 대한 연결에서 수행되는 권한 설정 또는 개체가 싱크에 전달될 때 적용되는 권한을 식별할 수 없습니다.
멤버
SWbemPrivilegeSet 개체에는 다음과 같은 형식의 멤버가 있습니다.
메서드
SWbemPrivilegeSet 개체에는 다음과 같은 메서드가 있습니다.
메서드 | 설명 |
---|---|
추가 |
WbemPrivilegeEnum 상수를 사용하여 SWbemPrivilegeSet 컬렉션에 SWbemPrivilege 개체를 추가합니다. |
AddAsString | 권한 문자열을 사용하여 SWbemPrivilegeSet 컬렉션에 SWbemPrivilege 개체를 추가합니다. |
DeleteAll | 컬렉션에서 모든 권한을 삭제합니다. |
항목 | 컬렉션에서 SWbemPrivilege 개체를 검색합니다. 이 개체의 기본 메서드입니다. |
제거 | 컬렉션에서 SWbemPrivilege 개체를 제거합니다. |
속성
SWbemPrivilegeSet 개체에는 다음과 같은 속성이 있습니다.
속성 | 액세스 유형 | 설명 |
---|---|---|
개수 |
읽기 전용 |
컬렉션의 항목 수입니다. |
예제
다음 VBScript 코드 예제에서는 SWbemPrivileges 개체를 가져오고 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
다음 VBScript 코드 예제에서는 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
다음 Perl 코드 예제에서는 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";
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista |
지원되는 최소 서버 |
Windows Server 2008 |
헤더 |
|
유형 라이브러리 |
|
DLL |
|
CLSID |
CLSID_SWbemPrivilegeSet |
IID |
IID_ISWbemPrivilegeSet |