WMI 문제 해결
애플리케이션 또는 스크립트에서 WMI 로컬 또는 원격 데이터에 액세스할 때 누락된 클래스에서 액세스 거부에 이르기까지 다양한 오류가 발생할 수 있습니다. 공급자는 디버깅 옵션 및 문제 해결 클래스도 사용할 수 있습니다.
참고
이 항목의 정보는 개발자 및 IT 관리자를 위한 것입니다. WMI와 관련된 오류 메시지가 발생한 최종 사용자인 경우 Microsoft 지원 방문하여 오류 메시지에 표시되는 오류 코드를 검색합니다. WMI 스크립트 및 WMI 서비스 문제 해결에 대한 자세한 내용은 WMI가 작동하지 않음을 참조하세요.
WMI Diagnosis Utility
중요
WMI Diagnosis Utility(WMIDiag.exe
)은 Windows 8 및 Windows Server 2012부터 더 이상 지원되지 않습니다.
Windows 7, Windows Server 2008 R2, Windows Vista 및 Windows Server 2008:
WMI가 오류 메시지를 반환하는 경우 WMI 서비스 또는 WMI 공급자의 문제를 나타내지 않을 수 있습니다. 오류는 운영 체제의 다른 부분에서 발생할 수 있으며 WMI를 통해 오류로 나타날 수 있습니다. 어떤 경우에도 WMI 리포지토리를 첫 번째 단계로 삭제하면 안 됩니다. 리포지토리를 삭제하면 시스템 또는 설치된 애플리케이션이 손상될 수 있기 때문입니다.
이전에는 문제의 원본에 대한 자세한 정보를 얻기 위해 WMI Diagnosis Utility 진단 명령줄 도구를 다운로드하여 실행할 수 있습니다. 이 도구는 일반적으로 문제의 원인을 격리하고 문제를 해결하는 방법에 대한 지침을 제공할 수 있는 보고서를 생성했습니다. 이 보고서는 또한 Microsoft 지원 서비스를 지원해 줍니다. WMI Diagnosis Utility 이전에 다운로드 센터에서 사용할 수 있었습니다.
공급자 작성기는 분리된 공급자를 작성하지 않는 한 디버깅 문제가 발생할 수도 있습니다. 자세한 내용은 공급자 디버깅을 참조하세요.
로깅 및 추적
WMI 로그 파일이 더 이상 존재하지 않습니다. ETW(Windows용 이벤트 추적)로 대체되었습니다. 자세한 내용은 WMI 활동 추적, WMI 활동 로깅 및 WMI로그 파일을 참조하세요.
스크립트 및 애플리케이션의 문제 해결
WMI에는 WMI 공급자를 사용하는 문제 해결 클라이언트 애플리케이션을 위한 클래스 집합이 포함되어 있습니다. 자세한 내용은 WMI 클라이언트 애플리케이션 문제 해결을 참조하세요.
공급자-작성기가 WMI 문제를 방지하는 방법
공급자 작성기는 다음 작업을 수행하여 많은 문제(WMI를 통해 오류 메시지에 표시됨)를 방지할 수 있습니다.
- 공급자를 올바르게 등록합니다. 자세한 내용은 공급자 등록을 참조하세요.
- 공급자 클래스를 정의하는 MOF(Managed Object Format) 파일에 #pragma 자동 복구 문을 추가합니다.
자세한 내용은 공급자 디버깅, WMI에 데이터 제공, 공급자 구성 및 문제 해결 클래스를 참조하세요.
액세스 거부됨
WMI 네임스페이스와 데이터에 액세스하는 스크립트 및 애플리케이션에서 보고하는 액세스 거부 오류는 일반적으로 세 가지 범주로 분류됩니다. 다음 표에서는 세 가지 오류 범주를 나열하고 오류의 원인이 될 수 있는 문제와 가능한 솔루션을 제시합니다.
오류 | 가능한 문제 | 솔루션 |
---|---|---|
0x800706BA HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) 방화벽 문제 또는 서버를 사용할 수 없음. |
컴퓨터가 실제로 존재하지 않거나 Windows 방화벽이 연결을 차단하고 있습니다. |
Vista에 연결: netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes Downlevel에 연결: Windows 방화벽에서 “원격 관리” 규칙을 허용합니다. |
0x80070005 E_ACCESS_DENIED DCOM 보안에 의해 액세스가 거부됨. |
사용자에게 DCOM을 통한 컴퓨터에 대한 원격 액세스 권한이 없습니다. 일반적으로 DCOM 오류는 다른 운영 체제 버전을 사용하여 원격 컴퓨터에 연결할 때 발생합니다. |
dcomcnfg에서 사용자에게 원격 시작 및 원격 활성화 권한을 부여합니다. 내 컴퓨터를 마우스 오른쪽 단추로 클릭-> 속성. COM 보안에서 두 섹션 모두에 대해 “제한 편집”을 클릭합니다. 원하는 사용자에게 원격 액세스, 원격 시작 및 원격 활성화를 제공합니다. 그런 다음 DCOM 구성으로 이동하여 “WMI(Windows Management Instrumentation)”을 찾아 원격 시작 및 원격 활성화를 원하는 사용자에게 제공합니다. 자세한 내용은 다른 운영 체제 간 연결을 참조하세요. |
0x80041003 WBEM_E_ACCESS_DENIED 공급자에 의해 액세스 거부됨 |
사용자에게 WMI에서 작업을 수행할 수 있는 권한이 없습니다. 이는 낮은 권한 사용자가 특정 클래스를 쿼리할 때 발생할 수 있지만, 대부분의 경우 메서드를 호출하거나 낮은 권한 사용자로 WMI 인스턴스를 변경하려고 할 때 발생합니다. 연결하려는 네임스페이스는 암호화되었으나 사용자가 암호화되지 않은 연결로 연결하려고 합니다. |
사용자에게 WMI 컨트롤을 암호화를 지원하는 클라이언트를 사용하여 액세스 권한을 부여합니다(Remote_Access가 true로 설정되었는지 확인). |
일반적으로 DCOM 오류는 다른 운영 체제 버전을 사용하여 원격 컴퓨터에 연결할 때 발생합니다.
공급자는 특정 네임스페이스의 데이터에 대한 액세스를 거부하거나 특정 수준의 연결 보안을 요구할 수도 있습니다. 자세한 내용은 클라이언트 애플리케이션 프로세스 보안 설정 및 공급자 호스팅 및 보안을 참조하세요.
ICF(인터넷 연결 방화벽) 변경으로 인한 액세스 거부 오류입니다.
자세한 내용은 Windows 방화벽을 통한 연결을 참조하세요.
낮은 무결성 클라이언트가 WMI에 액세스하려고 하면 DCOM 보안에서 액세스 거부 오류가 반환됩니다. 예를 들어 보안 수준이 낮게 설정된 Internet Explorer에서 실행되는 ActiveX 컨트롤에는 로컬 WMI 작업을 수행할 수 있는 액세스 권한이 없습니다.
Windows 7: 무결성이 낮은 사용자에게는 로컬 WMI 작업에 대한 읽기 전용 권한이 있습니다.
오류에 대한 정보
WMI에서 오류 메시지가 표시되면 WMI 오류 상수에서, 또는 스크립팅의 경우 WbemErrorEnum에서 메시지를 찾을 수 있습니다. 그러나 오류만으로 제공되는 정보는 일반적으로 어떤 일이 일어나고 있는지 확인하기에 충분하지 않습니다. WMI 리포지토리 손상은 클래스 또는 인스턴스 “찾을 수 없음”으로 가장할 수 있습니다.
WMI에 대한 자세한 내용은 다음을 참조하세요.
- WMI 로그는 WMI 코어 내 및 공급자로 인한 이벤트를 추적합니다. 자세한 내용은 WMI 활동 로깅을 참조하세요.
- WMI 문제 해결 클래스를 사용하여 WMI 내부 상태를 확인하거나 공급자 또는 WMI 서비스 이벤트의 알림을 받습니다. 자세한 내용은 공급자 구성 및 문제 해결 클래스 및 WMI 클라이언트 애플리케이션 문제 해결을 참조하세요.