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

... 31  32  33  34  [35]  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
12744정성태7/30/20217229개발 환경 구성: 586. Azure Active Directory에 연결된 App 목록을 확인하는 방법?
12743정성태7/30/20217916.NET Framework: 1083. Azure Active Directory - 외부 Token Cache 저장소를 사용하는 방법파일 다운로드1
12742정성태7/30/20217216개발 환경 구성: 585. Azure AD 인증을 위한 사용자 인증 유형
12741정성태7/29/20218369.NET Framework: 1082. Azure Active Directory - Microsoft Graph API 호출 방법파일 다운로드1
12740정성태7/29/20217058오류 유형: 747. SharePoint - InvalidOperationException 0x80131509
12739정성태7/28/20217022오류 유형: 746. Azure Active Directory - IDW10106: The 'ClientId' option must be provided.
12738정성태7/28/20217594오류 유형: 745. Azure Active Directory - Client credential flows must have a scope value with /.default suffixed to the resource identifier (application ID URI).
12737정성태7/28/20216563오류 유형: 744. Azure Active Directory - The resource principal named api://...[client_id]... was not found in the tenant
12736정성태7/28/20217048오류 유형: 743. Active Azure Directory에서 "API permissions"의 권한 설정이 "Not granted for ..."로 나오는 문제
12735정성태7/27/20217556.NET Framework: 1081. C# - Azure AD 인증을 지원하는 데스크톱 애플리케이션 예제(Windows Forms) [2]파일 다운로드1
12734정성태7/26/202123519스크립트: 20. 특정 단어로 시작하거나/끝나는 문자열을 포함/제외하는 정규 표현식 - Look-around
12733정성태7/23/202110922.NET Framework: 1081. Self-Contained/SingleFile 유형의 .NET Core/5+ 실행 파일을 임베딩한다면? [1]파일 다운로드2
12732정성태7/23/20216228오류 유형: 742. SharePoint - The super user account utilized by the cache is not configured.
12731정성태7/23/20217329개발 환경 구성: 584. Add Internal URLs 화면에서 "Save" 버튼이 비활성화 된 경우
12730정성태7/23/20218865개발 환경 구성: 583. Visual Studio Code - Go 코드에서 입력을 받는 경우
12729정성태7/22/20217855.NET Framework: 1080. xUnit 단위 테스트에 메서드/클래스 수준의 문맥 제공 - Fixture
12728정성태7/22/20217331.NET Framework: 1079. MSTestv2 단위 테스트에 메서드/클래스/어셈블리 수준의 문맥 제공
12727정성태7/21/20218274.NET Framework: 1078. C# 단위 테스트 - MSTestv2/NUnit의 Assert.Inconclusive 사용법(?) [1]
12726정성태7/21/20218101VS.NET IDE: 169. 비주얼 스튜디오 - 단위 테스트 선택 시 MSTestv2 외의 xUnit, NUnit 사용법 [1]
12725정성태7/21/20216877오류 유형: 741. Failed to find the "go" binary in either GOROOT() or PATH
12724정성태7/21/20219521개발 환경 구성: 582. 윈도우 환경에서 Visual Studio Code + Go (Zip) 개발 환경 [1]
12723정성태7/21/20217154오류 유형: 740. SharePoint - Alternate access mappings have not been configured 경고
12722정성태7/20/20217014오류 유형: 739. MSVCR110.dll이 없어 exe 실행이 안 되는 경우
12721정성태7/20/20217636오류 유형: 738. The trust relationship between this workstation and the primary domain failed. - 세 번째 이야기
12720정성태7/19/20216970Linux: 43. .NET Core/5+ 응용 프로그램의 Ubuntu (Debian) 패키지 준비
12719정성태7/19/20216128오류 유형: 737. SharePoint 설치 시 "0x800710D8 The object identifier does not represent a valid object." 오류 발생
... 31  32  33  34  [35]  36  37  38  39  40  41  42  43  44  45  ...