다음을 통해 공유


권한 있는 작업 실행

권한 있는 작업에는 장치 드라이버를 로드하는 계정에 대해 사용하도록 설정해야 하는 권한인 SeLoadDriverPrivilege(스크립팅 API 상수wbemPrivilegeLoadDriver)와 같은 보안 권한이 필요합니다. WMI를 통해 관리자 또는 사용자에게 권한을 추가할 수 없으며 계정에 이미 있는 권한만 사용하도록 설정할 수 있습니다. 권한 목록에 대해서는 Privilege_Constants를 참조하세요.

기본적으로 컴퓨터의 로컬 사용자는 WMI 리포지토리에서 정적 데이터를 읽고 공급자가 제공하는 인스턴스에 쓰고 공급자가 자체적으로 특별한 보안 요구 사항을 적용하지 않는 한 공급자 메서드를 실행할 수 있습니다. 관리자만 원격 컴퓨터에 연결하거나 보안 설명자를 변경하거나 WMI 클래스 정의와 같은 정적 WMI 리포지토리 데이터를 변경할 수 있습니다. 모든 권한은 원격 연결에 대해 사용하도록 설정됩니다. 자세한 내용은 원격 WMI 연결 보안을 참조하세요.

C++에 대한 권한 상수는 Visual Basic과 같은 자동화 언어에서 사용되는 상수와 다릅니다. 스크립트는 이름 대신 상수 값을 사용해야 합니다. 자세한 내용은 C++를 사용하여 권한 있는 작업 실행 또는 VBScript를 사용하여 권한 있는 작업 실행을 참조하세요.

WMI를 사용할 때 액세스 거부 오류의 일반적인 원인은 모든 Win32_NTEventlogFile 인스턴스 가져오기와 같은 작업에 대해 활성화된 권한이 없기 때문에 발생합니다. SeSecurity 권한을 사용하도록 설정하지 않으면 보안 로그 파일에 액세스할 수 없습니다.

다음 VBScript 코드 예제에서는 모니커 문자열에서 SeSecurity 권한을 설정하는 방법을 보여줍니다. 모니커에서 사용할 경우 괄호 안의 권한 이름은 이니셜 "Se"를 삭제합니다. 자세한 내용은 모니커 문자열 만들기를 참조하세요.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate,(Security)}!\\" _
    & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * from Win32_NTEventLogFile " _
    & "Where LogFileName='Security'")
For Each LogFile in colFiles
Wscript.Echo LogFile.NumberOfRecords
Next

권한 상수