다음을 통해 공유


권한 있는 작업 실행

권한 있는 작업에는 스크립팅 API 상수SeLoadDriverPrivilege(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

권한 상수