WMI를 통해 많은 원격 시스템 (도메인 및 독립 실행 형 모두)에 연결되는 C# 응용 프로그램이 있습니다. 이 프로그램은 wmi에 자격 증명을 제공하고 가장 (impersonation)을 사용합니다. 콘솔에서 수동으로 실행하면 잘 연결되고 모두 정상입니다. 그러나이 동일한 .exe가 서비스 (로컬 사용자로 실행)에서 호출되면 ManagementScope에서 Connect()를 호출 할 때 항상 0x80070005 (E_ACCESSDENIED)가됩니다.서비스에서 원격 WMI 호출을 시도 할 때 액세스가 거부되었습니다.
필자는 비슷한 주제에 대해 많은 도움이되는 기사를 많이 찾았지만 아무 것도 발견하지 못했습니다. This one 그리고 MS의 사이트에있는 그의 [후속 게시물] [2]은 쿼리가 실행될 때가 아니라 연결시 오류가 발생한다는 점을 제외하고는 매우 유사합니다. 따라서 로컬 시스템 권한 문제와 같은 느낌을 갖습니다.
DCOM 사용 권한, WMI 원격 권한, 가장 옵션, 정책 옵션, Windows 방화벽 등 모든 결과가 전혀 없습니다. 누가 밖에 도울 수있는 사람이 있습니까?
편집 : 조금 더 파고 들자면 MS에서 실제로이라는 오류 (0x80070005)가 연결 중에 발생하는 DCOM 문제이고 특히 WMI 오류가 아니라는 점을 발견했습니다. 그들이 제공하는 원인은 1. 자격 증명 실패 또는 2. DCOM 시작/원격 활성화 권한. 동일한 자격 증명을 사용하여 수동으로 실행하면 내 프로그램이 작동하므로 DCOM 문제로 가정해야합니다. 원격/로컬 활성화 &을 SYSTEM, LOCAL SERVICE, INTERACTIVE 및 Administrators를 허용하도록 시작했지만 여전히 실패합니다. 서비스가 로컬 시스템으로 실행 중이므로이 설정으로 충분하다고 가정합니다.
이 문제를 해결 했습니까? 비슷한 문제가 여기에 있습니다. – dalvarezmartinez1