2012-07-28 3 views
1

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를 허용하도록 시작했지만 여전히 실패합니다. 서비스가 로컬 시스템으로 실행 중이므로이 설정으로 충분하다고 가정합니다.

+0

이 문제를 해결 했습니까? 비슷한 문제가 여기에 있습니다. – dalvarezmartinez1

답변

0

나는 지나치게 단순화 또는 완전히 문제를 이해하지 못하는, 그러나 당신이 서비스는 기계 지역 계정에만 자격 증명, 그런 데를 통해 원격 WMI 공급자에 액세스하려고하는 경우 나에게 보인다 될 수 있습니다 노력은 항상 실패 할 것입니다. MACHINE \ account에서 OTHERMACHINE \ account 또는 DOMAIN \ account 로의 인증 경로가 없습니다. 다시 말하면, 내가 지나치게 간소화하거나 오해한다면, 사과해야한다.

+0

안녕하세요, David, 답장을 보내 주셔서 감사합니다. 제 상황을 더 분명하게하지 않으면 사과드립니다. C# 응용 프로그램은 원격 컴퓨터에 대한 인증/자격 증명을 제공하며 도메인/컴퓨터 계정 신뢰에 의존하지 않습니다. 사실 대상 컴퓨터는 원본 도메인 내부와 외부에 있습니다. 나는 또한 이것을 독립 실행 형 (XP) 워크 스테이션에서 실행하려고 시도했지만, 같은 방식으로 실패합니다. 그게 더 합리적입니까? –

+0

이것은 아마도 이미 수행 한 경로 일 것입니다.하지만 원본 및 대상 컴퓨터에서 ProcMon 복사본을 설정하고 서비스를 시작한 후 ProcMon에서 결과를 볼 수있게하려면 시간을 투자 할 것이라고 생각합니다. 오류가 발생하면 정확하게 *. 수정 사항을 어디에 집중해야하는지 더 잘 이해할 수 있습니다. –

관련 문제