SWbemPrivilegeSet 개체

SWbemPrivilegeSet 개체는 WMI(Windows Management Instrumentation) 개체에 대한 특정 권한을 요청하는 SWbemSecurity 개체의 SWbemPrivilege 개체 컬렉션입니다. 권한 상수의 권한 목록을 참조하세요. 항목은 AddAddAsString 메서드를 사용하여 컬렉션에 추가됩니다. 항목은 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
헤더
Wbemdisp.h
유형 라이브러리
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemPrivilegeSet
IID
IID_ISWbemPrivilegeSet

추가 정보

권한 있는 작업 실행

VBScript를 사용하여 권한 있는 작업 실행

WbemPrivilegeEnum

스크립팅 API 개체

권한 상수