2012-12-03 3 views
1

다른 스레드에서이 문제에 대해 물었고 원격 레지스트리에 액세스 할 수있는 링크가 있습니다. 하지만 지금 직면하고있는 문제는 레지스트리에 값을 추가 할 수 없다는 것입니다. 나는 다음과 같은 코드를 사용하여 레지스트리에서 기존 항목에 일부 값을 추가하려고하지만 원격 레지스트리에 아무것도하지 않은 :OpenRemoteBaseKey 사용에 필요한 사용 권한은 무엇입니까?

RegistryKey rk; 
rk = RegistryKey.OpenRemoteBaseKey(
RegistryHive.CurrentUser, ReadServerName()); 
regkey = rk.OpenSubKey(LeafRegistry.LeafRoot + "\\sim\\NewView\\"); 
regkey.SetValue("runsystem", SIMserver); 

UPDATE

RegistryHive.LocalMachine 여기에 작동합니다, 나는 열 수 있습니다 모든 작업을 수행하지만 RegistryHive.CurrentUser를 사용하는 이유는 무엇입니까? 내가 말한 것은 위의 코드에서 'rk'에 대한 가치를 얻을 수 있지만 null이 될 것입니다 regkey에 대한 가치를 얻을 수 없다, 나는 CurrentUser OpenSubKey가 작동하지 않는다고 생각한다.

내가 깊이 분석하면

, 나는이 특정 키를 제외한 보았다 UPDATE는 다른 모든 키를 액세스 할 수 있습니다. 나는이 특정 키에 대해 어떤 일이 일어나고 있는지 궁금해서 오른쪽 클릭 한 후에도 허가를 확인했지만 그것을 볼 수 없었는가?

답변

0

대부분의 경우 네트워크를 통해 원격 컴퓨터의 레지스트리 값을 변경하려고 할 때 대부분 사용 권한이 필요합니다. 또한 많은 경우에 레지스트리 값을 수정할 수있는 경우에도 그룹 정책을 통해 새로 고쳐서 되돌릴 수 있습니다.

그것은 당신이 편집을 제한하는 레지스트리의 특정 부분이 있다는 것을있을 수

당신은 관리자가 당신이 떨어진 올 것이라고 생각 다음 privelages이없는 경우.

+0

관리자 권한이 있습니다. 원격 시스템의 Administrators 그룹에 내 userid를 추가했습니다. – ponting

+0

RegistryHive.LocalMachine이 여기에서 작동합니다. 모든 작업을 열 수 있지만 RegistryHive.CurrentUser가 작동하지 않는 이유는 무엇입니까? – ponting

+0

내가 말하고있는 것은 위의 코드에서 질문 할 때 'rk'값을 얻을 수 있지만 null이 될 regkey 값을 얻을 수 없다는 것입니다. currentsuer OpenSubKey가 작동하지 않는다고 생각합니다. – ponting

0

이것은 작동하지 않습니다. 프로그램이 원격 컴퓨터 아래에 액세스하는 사용자 계정이 원격 컴퓨터에 로그인되어 있지 않다고 가정합니다. Windows는 어떻게해야합니까? 사실 OpenRemoteBaseKey이 내부적으로 호출하는 RegConnectRegistry에 대한 문서는 허용 인수로 HKEY_CURRENT_USER을 나열하지 않습니다.

+0

관리자 권한이 있습니다. 원격 시스템의 Administrators 그룹에 대한 사용자 ID – ponting

+0

그것은 부적절합니다. MSDN에서 OpenRemoteBaseKey에 대해 말한 내용에도 불구하고 원격으로 HKEY_CURRENT_USER를 열 수 없습니다 (RegConnectRegistry의 위 링크 참조). HKEY_USERS/(사용자의 SID)를 열어 볼 수도 있지만 사용자가 이미 원격 컴퓨터에 로그인 한 경우에만 작동합니다. RegConnectRegistry는 사용자의 하이브를로드하지 않습니다. 접근 방식을 재고해야 할 수도 있습니다. –

+0

내가 말하는 것은 위의 코드에서 질문에 주어진 'rk'에 대한 가치를 얻을 수 있지만 null이 될 것입니다 regkey에 대한 가치를 얻을 수 없다, 나는 currentsuer OpenSubKey가 작동하지 않는 것 같아 – ponting

관련 문제