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>
정성태

... 151  152  153  154  155  156  157  158  159  [160]  161  162  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
1048정성태5/27/201132269개발 환경 구성: 123. Apache 소스를 윈도우 환경에서 빌드하기
1047정성태5/27/201126139.NET Framework: 217. Firebird ALinq Provider - 날짜 필드에 대한 낙관적 동시성 쿼리 오류
1046정성태5/26/201130804.NET Framework: 216. 라이선스까지도 뛰어넘는 .NET Profiler [5]
1045정성태5/24/201131894.NET Framework: 215. 닷넷 System.ComponentModel.LicenseManager를 이용한 라이선스 적용 [1]파일 다운로드1
1044정성태5/24/201132453오류 유형: 122. zlib 빌드 오류 - inflate.obj : error LNK2001: unresolved external symbol _inflate_fast
1043정성태5/24/201131422.NET Framework: 214. 무료 Linq Provider - DbLinq를 이용한 Firebird 접근파일 다운로드1
1042정성태5/23/201137746개발 환경 구성: 122. PHP 소스를 윈도우 환경에서 빌드하기
1041정성태5/22/201128639.NET Framework: 213. Linq To SQL - ALinq Provider를 이용하여 Firebird 사용파일 다운로드1
1040정성태5/21/201138971개발 환경 구성: 121. .NET 개발자가 처음 설치해 본 Apache + PHP [2]
1039정성태5/17/201131672.NET Framework: 212. Firebird 데이터베이스와 ADO.NET [2]파일 다운로드1
1038정성태5/16/201133636개발 환경 구성: 120. .NET 프로그래머에게도 유용한 Firebird 무료 데이터베이스 [2]
1037정성태5/11/201128474개발 환경 구성: 119. Visual Studio Professional 이하 버전에서도 TFS의 정적 코드 분석 정책 연동이 가능할까? [3]
1036정성태5/7/201194269오류 유형: 121. Access DB에 대한 32bit/64bit OLE DB Provider 관련 오류 [11]
1035정성태5/7/201129030오류 유형: 120. File cannot be opened. Ensure it is a valid Data Link file.
1034정성태5/2/201126066.NET Framework: 211. 파일 잠금 없이 .NET 어셈블리의 버전을 구하는 방법 [2]파일 다운로드1
1033정성태5/1/201131779웹: 19. IIS Express - appcmd.exe를 이용한 applicationHost.config 변경 [2]
1032정성태5/1/201128435웹: 18. IIS Express를 NT 서비스로 변경
1031정성태4/30/201129590웹: 17. IIS Express - "IIS Installed Versions Manager Interface"의 IIISExpressProcessUtility 구하는 방법 [1]파일 다운로드1
1030정성태4/30/201151852개발 환경 구성: 118. IIS Express - localhost 이외의 호스트 이름으로 접근하는 방법 [4]파일 다운로드1
1029정성태4/28/201140985개발 환경 구성: 117. XCopy에서 파일/디렉터리 확인 질문 없애기 [2]
1028정성태4/27/201138381오류 유형: 119. Visual Studio 2010 SP1 설치 후 Windows Phone 개발자 도구로 인한 재설치 문제 [3]
1027정성태4/25/201127561디버깅 기술: 40. 상황별 GetFunctionPointer 반환값 정리 - x86파일 다운로드1
1026정성태4/25/201145841디버깅 기술: 39. DebugDiag 1.1을 사용한 덤프 분석 [7]
1025정성태4/24/201127900개발 환경 구성: 116. IIS 7 관리자 - Active Directory Certification Authority로부터 SSL 사이트 인증서 받는 방법 [2]
1024정성태4/22/201129206오류 유형: 118. Windows 2008 서버에서 Event Viewer / PowerShell 실행 시 비정상 종료되는 문제 [1]
1023정성태4/20/201130102.NET Framework: 210. Windbg 환경에서 확인해 본 .NET 메서드 JIT 컴파일 전과 후 [1]
... 151  152  153  154  155  156  157  158  159  [160]  161  162  163  164  165  ...