올바른 권한이 있어도 레지스트리 키 액세스가 거부되었습니다.

올바른 권한이 있어도 레지스트리 키 액세스가 거부되었습니다.

Windows 10 home 64비트를 새로 설치(며칠 전)하고 있는데 특정 레지스트리 키에 액세스하는 데 문제가 발생했습니다. Office VBA 편집기(내 제한된 사용자 계정의 32비트 프로세스)가 레지스트리에서 사용 가능한 컨트롤을 검색하면 {0002DF01-0000-0000-C000-000000000046}HKCR\CLSIDs 분기의 CLSID에 도달하고 읽기 모드에서 키를 열 때 액세스 거부가 발생합니다. 계속. 이 키는 HKLM 분기에만 있고 HKCU 분기에는 없습니다. 기본값을 보면 "Internet Explorer(Ver 1.0)"용입니다. 두 개의 사본이 있습니다. 하나는 Classes\CLSID 경로에 직접 있고, 다른 하나는 32비트 프로세스의 경우 Classes\WOW6432Node\CLSID 경로에 있습니다. 이것은 Office 32비트이므로 먼저 WOW6432Node 버전에 중점을 두었습니다.

지금까지의 테스트:

  • 이 키에는 이미 내 사용자 계정에 대한 읽기 권한이 있습니다. 무엇이 제공됩니까?
  • 소유자는 TrustedInstaller였으며(왜 그 사람입니까?) 이 키에 대한 권한이 명시적으로 무시되었습니다(즉, 제가 생각하는 것처럼 상속되지 않았습니다. 이유는 무엇입니까?)
  • 소유자를 관리자로 변경하고 모든 권한을 가진 특정 사용자 계정을 추가했습니다. RegEdit의 "유효 액세스" 탭은 이 사용자가 이에 대한 모든 권한을 갖고 있음을 확인하지만 VBA IDE(동일한 사용자 계정으로 실행)가 이를 읽으려고 할 때 거부된 액세스가 계속 트리거됩니까?
  • 일시적으로 키 이름을 변경했습니다(예: 첫 번째 "0"을 "1"로 대체). Process Monitor에 따르면 이제 VBA IDE는 이름이 바뀐 키를 잘 읽을 수 있습니다. 더 이상 액세스가 거부되지 않습니다!? 이름을 다시 바꾸면 이전 동작이 다시 나타납니다.
  • 이것이 잠재적으로 동일한 키의 32비트와 64비트 '버전' 사이의 충돌일 수 있다고 생각하여 이 키의 64비트 버전에 대해 동일한 작업을 시도했습니다. 결과: 기본 권한은 이미 충분하여 소유권을 관리자로 설정하고 관리자에게 모든 권한을 부여하는 것도 가능하지만 RegEdit에서 키 이름을 관리자로 바꾸는 것은 허용되지 않습니까? RegEdit에서 "키 이름 바꾸기 오류 - 레지스트리 편집기에서 {0002DF01-0000-0000-C000-000000000046} 이름을 바꿀 수 없습니다. 키 이름을 바꾸는 동안 오류가 발생했습니다." (와우, 유용한 정보네요!) 프로세스 모니터를 사용하면 RegEdit의 RegRenameKey 작업으로 인해 여기서도 액세스가 거부되는 것으로 나타났습니다.
  • (작업 관리자를 통해 확인된 계정)을 사용하여 시스템 계정으로 RegEdit을 실행해도 PsExec -s -i regedit.exe여전히 키 이름을 바꿀 수 없습니다.

따라서 이는 그 자체로는 권한 문제가 아닌 것 같습니다. 다른 프로세스가 이름으로 이 키에 대한 액세스를 적극적으로 모니터링하고 거부하는 것 같습니다. 올바른 권한 설정에 관계없이 관리자는 64비트 버전의 키 이름을 바꿀 수 없으며, 32비트 버전의 키를 읽으려고 시도하는 32비트 프로세스도 '액세스가 거부'됩니다. 32비트가 일반 Classes\CLSID... 경로에 대한 쿼리를 처리하기 때문에(즉, RegEdit 이름 변경처럼 WOW6432Node 경로가 명시적으로 포함되어 있지 않음) 여기에서 동일한 캡처가 트리거된다고 가정합니다.

그림을 완성하려면: 솔직히 언제 이런 일이 일어나기 시작했는지 기억이 나지 않습니다. 나는 이 VBA IDE 기능이 다시 필요했을 때 몇 주 전에 처음으로 그것을 발견했습니다. 기본 Windows Defender와 함께 Sandboxie v5.18이 설치되어 있습니다. 모든 소프트웨어는 패치가 적용되어 있으며 최신 상태입니다. 그 외에는 다른 침입형 보안 소프트웨어가 설치되어 있지 않습니다. Sandboxie 서비스와 Windows Defender를 꺼도 도움이 되지 않았으며 Windows를 안전 모드에서 실행하지도 않았습니다.

무슨 일이 일어나고 있는지 아는 사람이 있나요?

궁금하거나 이 문제를 해결하는 데 도움이 필요한 사람을 위한 컨텍스트: 저는 Office 2010 Professional 32비트를 사용하고 있는데 VBA IDE 버그가 발생하여 양식을 디자인할 때 도구 상자에 추가 컨트롤을 추가할 수 없게 되었습니다. IDE에서. 하루 종일 "추가 컨트롤"을 선택할 수 있지만(메뉴 및 도구 상자 자체의 팝업 상황에 맞는 메뉴에서) 커서가 잠깐 깜박이는 형태 변경 외에는 아무 일도 일어나지 않습니다. "추가 컨트롤" 대화상자가 없습니다. 아무 것도 열리지 않고 오류도 표시되지 않습니다. 이런 일이 발생하는 이유는 "컨트롤" 유형 CLSID를 검색하기 위해 레지스트리를 반복할 때 VBA IDE가 레지스트리 키를 읽을 때 '액세스 거부' 오류가 발생하면 수행 중인 작업을 종료하기 때문입니다. 프로세스 모니터를 사용하면 권한 오류를 유발한 키를 찾을 수 있으며 설정된 권한을 수정하면 VBA가 다시 만족스러워집니다. 불행히도 버그는 오랫동안 존재했으며 자주 발생하지는 않지만 IMO는 여전히 수정되지 않은 나쁜 디자인입니다.

관련 정보