Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Component Services 관리자의 RuntimeBroker 설정이 2개 있는 경우

이벤트 로그에 다음과 같은 오류가 있어,

Log Name:      System
Source:        Microsoft-Windows-DistributedCOM
Date:          2019-02-21 오전 8:47:48
Event ID:      10016
Task Category: None
Level:         Error
Keywords:      Classic
User:          TESTPC\TestUser
Computer:      TESTPC
Description:
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID 
{2593F8B9-4EAF-457C-B68A-50F6B8EA6B54}
 and APPID 
{15C20B67-12E7-4BB6-92BB-7AFF07997402}
 to the user TESTPC\TestUser SID (S-1-5-21-332754840-1836100723-1710880654-1001) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

15C20B67-12E7-4BB6-92BB-7AFF07997402를 찾아 보니 RuntimeBroker입니다. 그래서 권한 조정을 위해 Component Services 콘솔을 들어갔는데 다음과 같이 2개의 RuntimeBroker가 보입니다.

two_runtime_broker_1.png

레지스트리를 검색해 보면, 실제로 2개의 구성 요소가 이름은 같지만 ID 값이 다른 것을 볼 수 있습니다.

첫 번째 있는 RuntimeBroker
HKEY_CLASSES_ROOT\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}
HKEY_CLASSES_ROOT\WOW6432Node\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}

두 번째 있는 RuntimeBroker
HKEY_CLASSES_ROOT\AppID\{15c20b67-12e7-4bb6-92bb-7aff07997402}
HKEY_CLASSES_ROOT\WOW6432Node\AppID\{15c20b67-12e7-4bb6-92bb-7aff07997402}

On Windows 10 Pro x64, DCOM Config shows two RuntimeBroker entries
; https://social.technet.microsoft.com/Forums/windows/en-US/58aa5465-7aba-4dcf-bc40-89c2f17cc785/on-windows-10-pro-x64-dcom-config-shows-two-runtimebroker-entries?forum=win10itprogeneral

따라서 15c20b67-12e7-4bb6-92bb-7aff07997402 구성 요소의 레지스트리 권한 조정을 했으면 Component Services 콘솔에서는 그에 영향받는 RuntimeBroker의 권한 조정을 하면 됩니다.




그나저나 이번에 검색하다가 재미있는 것을 알았습니다. ^^

이전 글에서도 설명했듯이, DCOM 객체의 Activation/Launch 권한 조정이 여간 귀찮은 작업이 아닐 수 없습니다. 왜냐하면 Component Services의 설정에 앞서 HKEY_CLASSES_ROOT\AppID 하위 노드의 권한 조정이 필요한데 이 작업을 거치지 않으면 관리자 권한으로 로그인을 했어도 다음과 같은 오류가 발생하기 때문입니다.

Unable to save permission changes on {...guid...}.

Access is denied.

그런데, 이러한 Activation/Launch 설정을 한방에 해결해주는 PowerShell 스크립트가 있습니다.

Grant, Revoke, Get DCOM permissions using PowerShell
; https://gallery.technet.microsoft.com/Grant-Revoke-Get-DCOM-22da5b96

위의 갤러리에서 DCOMPermissions.psm1 파일을 내려받아 PowerShell 프롬프트에서 다음과 같이 가져온 후,

PS C:\Windows\System32> Import-Module c:\temp\DCOMPermissions

Do you want to run software from this untrusted publisher?
File c:\temp\DCOMPermissions.psm1 is published by E=serverteam@edictsystems.com, CN="Edict Systems, Inc.", OU="Edict
Systems, Inc.", O="Edict Systems, Inc.", L=Beavercreek, S=Ohio, C=US and is not trusted on your system. Only run
scripts from trusted publishers.
[V] Never run  [D] Do not run  [R] Run once  [A] Always run  [?] Help (default is "D"): r

이렇게 사용하면 됩니다. ^^

PS C:\Windows\System32> Grant-DCOMPermission -ApplicationID "{15C20B67-12E7-4BB6-92BB-7AFF07997402}" -Account "TestUser" -Type Launch -Permissions LocalLaunch,LocalActivation -OverrideConfigurationPermissions






(2020-09-24: 업데이트) RuntimeBroker의 사용 사례중의 하나인지, 아니면 전용인지 모르겠지만 OneDrive의 동기화에 사용되는 듯합니다. ^^

runtime_broker_instance_1.png


[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]





[최초 등록일: ]
[최종 수정일: 9/24/2020 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer@outlook.com

비밀번호

댓글 쓴 사람
 



2020-09-15 11시58분
[정성현] 안녕하세요. 롤코2를 하다가 화면이 자꾸 멈춰서(드라이버 오류로 추정) 여러것을 건드려 봤다가 선생님의 글을 보고 해법을 거의 찾은 1인입니다. 그런데 파워셀을 하던 도중에 이런 메세지가 뜨더군요...
---
PS C:\Windows\system32> Grant-DCOMPermission -ApplicationID "{15C20B67-12E7-4BB6-92BB-7AFF07997402}" -Account "TestUser" -Type Launch -Permissions LocalLaunch,LocalActivation -OverrideConfigurationPermissions
Wrapper-DComPermission : "1"개의 인수가 있는 "Translate"을(를) 호출하는 동안 예외가 발생했습니다. "ID 참조의 일부 또는
전부를 변환할 수 없습니다."
위치 C:\Users\정성현\Documents\WindowsPowerShell\Modules\DCOMPermissions.psm1:757 문자:5
+ Wrapper-DComPermission -Purpose Grant -ApplicationID $Application ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Wrapper-DComPermission], MethodInvocationException
    + FullyQualifiedErrorId : IdentityNotMappedException,Wrapper-DComPermission
------
조금이라도 힌트를 주신다면 감사하겠습니다!
[손님]
2020-09-16 09시43분
해당 스크립트가 안 되는 것은, 기타 설명할 내용이 더 없습니다. 그렇긴 한데, (현재 그 이벤트 로그의 직접적인 원인은 모르지만) 롤코2라는 프로그램의 오류와는 별 상관이 없을 것이므로 그것에 너무 신경쓰지 않아도 될 것입니다.
정성태

[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
12384정성태10/27/202031오류 유형: 672. AllowPartiallyTrustedCallers 특성이 적용된 어셈블리의 struct 멤버 메서드를 재정의하면 System.Security.VerificationException 예외 발생
12383정성태10/27/202062.NET Framework: 956. C# 9.0 - (7) Pattern matching improvements파일 다운로드1
12382정성태10/26/202028오류 유형: 671. dotnet build - The local source '...' doesn't exist
12381정성태10/26/202086VC++: 137. C++ stl map의 사용자 정의 타입을 key로 사용하는 방법파일 다운로드1
12380정성태10/26/202034오류 유형: 670. Visual Studio - Squash_FailureCommitsReset
12379정성태10/26/2020141.NET Framework: 955. .NET 메서드의 Signature 바이트 코드 분석파일 다운로드2
12378정성태10/20/2020151.NET Framework: 954. C# - x86/x64 환경에 따라 달라지는 P/Invoke 함수의 export 이름파일 다운로드1
12377정성태10/15/2020152디버깅 기술: 172. windbg - 파일 열기 시점에 bp를 걸어 파일명 알아내는 방법(Managed/Unmanaged)
12376정성태10/15/202059오류 유형: 669. windbg - sos의 name2ee 명령어 실행 시 "Failed to request module list." 오류
12375정성태10/15/2020187Windows: 177. 윈도우 탐색기에서 띄우는 cmd.exe 창의 디렉터리 구분 문자가 'Yen(¥)' 기호로 나오는 경우 [1]
12374정성태10/14/2020177.NET Framework: 953. C# 9.0 - (6) Function pointers파일 다운로드2
12373정성태10/14/202077.NET Framework: 952. OpCodes.Box와 관련해 IL 형식으로 직접 코딩 시 유의할 점
12372정성태10/14/2020166.NET Framework: 951. C# 9.0 - (5) Attributes on local functions파일 다운로드1
12371정성태10/13/202061개발 환경 구성: 519. Visual Studio의 Ctrl+Shift+U (Edit.MakeUppercase) 단축키가 동작하지 않는 경우
12370정성태10/13/202060Linux: 33. Linux - nmcli를 이용한 고정 IP 설정
12369정성태10/21/2020879Windows: 176. Raymond Chen이 한글날에 밝히는 윈도우의 한글 자모 분리 현상 [1]
12368정성태10/12/202054오류 유형: 668. VSIX 확장 빌드 - The "GetDeploymentPathFromVsixManifest" task failed unexpectedly.
12367정성태10/12/202056오류 유형: 667. Ubuntu - Temporary failure resolving 'kr.archive.ubuntu.com'
12366정성태10/13/2020153.NET Framework: 950. C# 9.0 - (4) Native ints파일 다운로드1
12365정성태10/12/2020155.NET Framework: 949. C# 9.0 - (3) Lambda discard parameters파일 다운로드1
12364정성태10/11/2020194.NET Framework: 948. C# 9.0 - (2) Skip locals init파일 다운로드1
12363정성태10/27/2020213.NET Framework: 947. C# 9.0 - (1) Target-typed new파일 다운로드1
12362정성태10/11/2020167VS.NET IDE: 151. Visual Studio 2019에 .NET 5 rc/preview 적용하는 방법
12361정성태10/19/2020260.NET Framework: 946. C# 9.0을 위한 개발 환경 구성
12360정성태10/8/202074오류 유형: 666. The type or namespace name '...' does not exist in the namespace 'Microsoft.VisualStudio.TestTools' (are you missing an assembly reference?)
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...