2012-06-18 2 views
2

원격 컴퓨터에서 레지스트리를 읽는 C# Windows 양식 응용 프로그램을 만들고 있습니다.다른 사용자가있을 때 원격 레지스트리가 항상 null

RegistryKey regKey = RegistryKey 
         .OpenRemoteBaseKey(RegistryHive.CurrentUser, pc, RegistryView.Registry64) 
         .OpenSubKey("SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources"); 

USER1에서 응용 프로그램을 실행할 때 내 원격 컴퓨터가 항상 USER1로 로그인되어 있기 때문에 USER1이 실행됩니다.

이제 USER2로 실행하면 내 regKey는 항상 NULL과 동일합니다.

원격 컴퓨터의 구성 요소 서비스에서 원격 레지스트리에 서비스를 허용했습니다.

어떤 아이디어로주세요?

+3

User1과 User2의 권한 차이점은 무엇입니까? – abatishchev

+1

user2가 시스템에 로그온 한 적이 있습니까? 그렇지 않으면 CurrentUser를 검색하면서 확인할 레지스트리 항목이 없습니다. –

+0

@abatishchev 나는 두 사용자의 차이점을 확인하기 위해 도메인에 접근 할 수 없다. – pharaon450

답변

1

원격 레지스트리 서비스의 관점에서 "현재 사용자"가 없다는 단순한 이유 때문에 원격 레지스트리를 통해 HKEY_CURRENT_USER를 읽을 수 없습니다.

예를 들어, 다음과 같습니다 당신이 로그온 할 경우

  • 레지스트리 키를 볼 것인가? (하지만 당신은되지 않습니다!)
  • 현재 로그온 한 사용자의 레지스트리 키 (아무도 어떤 존재하지 않는 경우는? 더 이상은? 무엇을 경우)

그것은 당신의 레지스트리 하이브를 가져올 수 없으며로드 로밍 프로필이 없기 때문입니다. 그것은 당신이 레지스트리를 볼 수 있도록 단지 하나를 만들고 싶지 않습니다.

So : HKEY_CURRENT_USER는 원격 레지스트리 서비스에 대해 아무것도 반환하지 않습니다. 특정 사용자에 관심이 있다면 HKEY_USERS 아래를보십시오.

+0

고맙습니다. – pharaon450

관련 문제