Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

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


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

[연관 글]






[최초 등록일: ]
[최종 수정일: 5/14/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at 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
------
조금이라도 힌트를 주신다면 감사하겠습니다!
[guest]
2020-09-16 09시43분
해당 스크립트가 안 되는 것은, 기타 설명할 내용이 더 없습니다. 그렇긴 한데, (현재 그 이벤트 로그의 직접적인 원인은 모르지만) 롤코2라는 프로그램의 오류와는 별 상관이 없을 것이므로 그것에 너무 신경쓰지 않아도 될 것입니다.
정성태
2020-11-14 06시02분
[guest] 좋은 글 감사합니다. 윗분 Account 이름을 자신에 맞게 변경하지 않으신것 같네요.
[guest]
2020-12-24 02시29분
[12312] 파워셀 부분이 이해가 잘 안갑니다.
[guest]
2020-12-24 10시52분
@12312 원래 보안 관련 코드가 어렵긴 합니다.
정성태
2021-12-11 06시11분
[와랄랄] 안녕하세요. 10016 이벤트 오류 찾다가 오류 이벤트 내용이 똑같아서 문의 드려봅니다.
[guest]
2021-12-11 06시19분
[와랄랄] 원드라이브도 프리징이 있어서 삭제했구요. 레지스트리랑 구성 요소 서비스도 건드려봤는데 같은 오류가 계속 반복됩니다. 저는 명령 프롬프트인줄 알고 DCOMPermissions.psm1 도 구해서 Import-Module나 그 다음의 Grant-DCOMPermission도 입력해봤는데. 명령 프롬프트에서는 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아니라고 하는데. 혹시 뭐가 잘못된건지 알수 있을까요. 명령 프롬프트는 관리자권한 실행이었습니다...
[guest]
2021-12-12 08시09분
명령행이긴 한데, PowerShell 환경에서 수행해야 합니다. "powershell"이라고 명령어를 치면 프롬프트가 다음과 같은 식으로 변경이 될 것입니다.

C:\Windows\System32> powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows
PS C:\Windows\System32>
정성태

1  2  3  4  5  6  7  8  9  10  11  12  [13]  14  15  ...
NoWriterDateCnt.TitleFile(s)
13299정성태3/27/20233737Windows: 237. Win32 - 모든 메시지 루프를 탈출하는 WM_QUIT 메시지
13298정성태3/27/20233684Windows: 236. Win32 - MessageBeep 소리가 안 들린다면?
13297정성태3/26/20234359Windows: 235. Win32 - Code Modal과 UI Modal
13296정성태3/25/20233700Windows: 234. IsDialogMessage와 협업하는 WM_GETDLGCODE Win32 메시지 [1]파일 다운로드1
13295정성태3/24/20233969Windows: 233. Win32 - modeless 대화창을 modal처럼 동작하게 만드는 방법파일 다운로드1
13294정성태3/22/20234141.NET Framework: 2105. LargeAddressAware 옵션이 적용된 닷넷 32비트 프로세스의 가용 메모리 - 두 번째
13293정성태3/22/20234207오류 유형: 853. dumpbin - warning LNK4048: Invalid format file; ignored
13292정성태3/21/20234333Windows: 232. C/C++ - 일반 창에도 사용 가능한 IsDialogMessage파일 다운로드1
13291정성태3/20/20234746.NET Framework: 2104. C# Windows Forms - WndProc 재정의와 IMessageFilter 사용 시의 차이점
13290정성태3/19/20234252.NET Framework: 2103. C# - 윈도우에서 기본 제공하는 FindText 대화창 사용법파일 다운로드1
13289정성태3/18/20233446Windows: 231. Win32 - 대화창 템플릿의 2진 리소스를 읽어들여 자식 윈도우를 생성하는 방법파일 다운로드1
13288정성태3/17/20233556Windows: 230. Win32 - 대화창의 DLU 단위를 pixel로 변경하는 방법파일 다운로드1
13287정성태3/16/20233713Windows: 229. Win32 - 대화창 템플릿의 2진 리소스를 읽어들여 윈도우를 직접 띄우는 방법파일 다운로드1
13286정성태3/15/20234169Windows: 228. Win32 - 리소스에 포함된 대화창 Template의 2진 코드 해석 방법
13285정성태3/14/20233761Windows: 227. Win32 C/C++ - Dialog Procedure를 재정의하는 방법파일 다운로드1
13284정성태3/13/20233956Windows: 226. Win32 C/C++ - Dialog에서 값을 반환하는 방법파일 다운로드1
13283정성태3/12/20233499오류 유형: 852. 파이썬 - TypeError: coercing to Unicode: need string or buffer, NoneType found
13282정성태3/12/20233822Linux: 58. WSL - nohup 옵션이 필요한 경우
13281정성태3/12/20233741Windows: 225. 윈도우 바탕화면의 아이콘들이 넓게 퍼지는 경우 [2]
13280정성태3/9/20234500개발 환경 구성: 670. WSL 2에서 호스팅 중인 TCP 서버를 외부에서 접근하는 방법
13279정성태3/9/20234048오류 유형: 851. 파이썬 ModuleNotFoundError: No module named '_cffi_backend'
13278정성태3/8/20234026개발 환경 구성: 669. WSL 2의 (init이 아닌) systemd 지원 [1]
13277정성태3/6/20234666개발 환경 구성: 668. 코드 사인용 인증서 신청 및 적용 방법(예: Digicert)
13276정성태3/5/20234338.NET Framework: 2102. C# 11 - ref struct/ref field를 위해 새롭게 도입된 scoped 예약어
13275정성태3/3/20234696.NET Framework: 2101. C# 11의 ref 필드 설명
13274정성태3/2/20234278.NET Framework: 2100. C# - ref 필드로 ref struct 타입을 허용하지 않는 이유
1  2  3  4  5  6  7  8  9  10  11  12  [13]  14  15  ...