2010-02-06 3 views
3

Vista에서는 표준 사용자가 HKLM \ Software의 키를 더 이상 만들거나 쓸 수 없습니다. 그래서 비스타 표준에 따라 코드를 포팅하려면 키를 내가 응용 프로그램 구성 데이터를 작성해야합니다. 폴더의 % AllUsers %/AppData와 같은 방식입니다. 필자의 주요 요구 사항은 HKLM \ Software에 대한 쓰기를 피해야하지만 핵심 위치는 레지스트리의 모든 사용자에게 공통적이어야합니다.Vista의 레지스트리 가상화를 피하기 위해 모든 사용자에게 공통적 인 레지스트리 위치

감사합니다, F

답변

2

레지스트리는 보안-수있는 개체입니다. 즉, 관리 설치 중에 생성 한 키의 ACL을 변경하여 HKLM에서 모든 사용자 읽기/쓰기 키를 만들 수 있습니다.

즉, Users \ public \ AppData는 사용자가 생각하는대로 작동하지 않을 수도 있습니다. 해당 폴더의 ACL을 사용하면 은 모든 사용자가을 읽을 수 있지만 작성자 만 작성할 수 있습니다. 즉, 두 명의 사용자가 같은 문서를 편집 할 수는 없습니다.

+0

Chris의 대답은 마음에 들지만 보안 전문가는 모든 사용자가 쓰기 권한이 있다고 레지스트리 키를 표시 한 후에는 데이터가 변조됩니다. –

+0

설치하는 동안 사용자가 레지스트리 키를 작성하지 않은 경우를 생각해보십시오. 따라서 "표준 사용자"로 실행할 수 있다고 선언 한 응용 프로그램이 키가 존재하는지 여부를 확인합니다. 존재하지 않는 경우 생성하려고합니다. 이제 표준 사용자가되어 HKLM \ Software 아래에 노드를 만들 수 없습니다. 내가 모든 사용자가 액세스 할 수있는 레지스트리 키에 쓸 수있는 폴더의 knownfolder ID와 같은 표준이 있는지 찾는 이유는 무엇입니까? 당신이 내 문제가되기를 바랍니다. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다. – coolcake

+0

그런 경우 운이 없네요. 레지스트리는 파일 시스템과 달리 규칙이 훨씬 엄격하다는 점에서 다릅니다. 기본 구성 (ACL을 변경 한 응용 프로그램 제외)에서 HKLM에는 일반 사용자가 항목을 작성하기 위해 작성할 수 있도록 구성된 작은 부분이 없습니다. –

관련 문제