2019-05-30T04:12:03Z kzstock [Event ID 10016] PLAN-B ShellServiceHost:APPID {4839DDB7-58C2-48F5-8283-E1D1807D0D7D}|DistributedCOM (DCOM)|LOCAL SERVICE
Scrap 2nd.
3

[Event ID 10016] PLAN-B ShellServiceHost:APPID {4839DDB7-58C2-48F5-8283-E1D1807D0D7D}|DistributedCOM (DCOM)|LOCAL SERVICE

1st:
検証:Windows 10 Pro October 2018 Update, v1809



本投稿はイベントビューアーメッセージ、イベントID10016の修復手順について記述しています。

Windows 10 v1709 を利用しているときに記録されたエラーですが、Windows 10 v1803/v1809 にアップデートしたタイミングで復活したエラーです。

[イベントID10016|ソース:DistributedCOM (DCOM)] はコンポーネントサービスに関係するエラーです。

DCOM エラーはコンポーネントサービスを起動して、メッセージで指摘された Windowsビルトインアカウント などを新規登録する手順を踏みます。

次項のイベントビューアーのメッセージを見てみると、Windows ビルトインアカウントは LOCAL SERVICE(ユーザー)のことです。

従って、コンポーネントサービスに登録されている APPID {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} に対して LOCAL SERVICE のアクセス許可がないために記録されているエラーであると解釈することができます。

これまでメモしてきた修復手順は、コンポーネントサービスを使用する前にレジストリエディターを起動して APPID の所有権を Administrators に変更する手順が必要でしたが、今回メモする手順は フリーソフト ExecTI から起動したコンポーネントサービスのみで修復を完結できるためリスクの低い方法となっています。


イベントビューアーのメッセージ

イベントビューアーに記録されたメッセージは次の通りです。

イベントビューアーのメッセージ
メッセージアプリケーション固有 のアクセス許可の設定では、CLSID
{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}
および APPID
{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}
の COM サーバー アプリケーションに対するローカルアクティブ化のアクセス許可を、アプリケーション コンテナー 利用不可 SID (利用不可) で実行中のアドレス LocalHost (LRPC 使用) のユーザー NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19) に与えることはできません。このセキュリティ アクセス許可は、コンポーネント サービス管理ツールを使って変更できます。
ログの名前システム
ソースDistributedCOM (DCOM)
イベントID10016
レベルエラー
ユーザーLOCAL SERVICE
APPID{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}
APPIDの名前ShellServiceHost

修復手順

ExecTIからコンポーネントサービスを起動するとAPPIDを直接編集できるようになるので、必要な手順が簡素化されます。
  1. ExecTIからコンポーネントサービスを起動する
  2. APPID{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}にLOCAL SERVICEを追加して「ローカルからのアクティブ化」を有効にする
  3. パソコンを再起動する

1. ExecTIからコンポーネントサービスを起動する

1-1. ExecTIを入手して起動する
ExecTI はレジストリエディターやコンポーネントサービスを TrustedInstaller権限で起動させることが可能なソフトウェアです。
1-2. コンポーネントサービスを起動する
コンポーネントサービスを起動するコマンドは comexp.msc です。

Openの横のボックスに comexp.msc と入力してからOKをクリックすると TrustedInstaller権限でコンポーネントサービスが起動します。コンポーネントサービスの外観は通常起動したものと同じです。

2. APPIDにLOCAL SERVICEを追加して「ローカルからのアクティブ化」を有効にする

2-1. APPIDのプロパティを表示する
ExecTI:comexp.msc > コンソールルート > コンポーネントサービス > コンピューター > マイコンピューター > DCOMの構成
コンポーネントサービスの表示モードは「詳細」に切り替えておきましょう。

検索機能がないので APPID:{4839DDB7-58C2-48F5-8283-E1D1807D0D7D} は DCOMの構成を選択して右ペインの ”アプリケーション ID” 列から目視で探します。

APPIDの名前は ShellServiceHostです。見つかったらプロパティを表示します。

2-2. 起動とアクティブ化のアクセス許可を表示する
ShellServiceHostのプロパティ > セキュリティタブ > 起動とアクティブ化のアクセス許可 > 編集
編集をクリックするとWindows セキュリティダイアログが表示されます。削除をクリックすると起動とアクティブ化のアクセス許可が表示されます。



起動とアクティブ化のアクセス許可

2-3. LOCAL SERVICE を追加する
追加 > 詳細設定 > 検索
追加>詳細設定 と進み表示されたダイアログから 検索をクリックします。検索結果から LOCAL SERVICE を選択してOKをクリックします。



「選択するオブジェクト名を入力してください」の下のボックスに LOCAL SERVICE が表示されていることを確認したらOKをクリックします。

起動とアクティブ化のアクセス許可の画面に戻ってLOCAL SERVICEが選択状態になっていたら成功です。
2-4. ローカルからのアクティブ化を有効にする
LOCAL SERVICE を選択した状態にして、アクセス許可の下のボックスの「☑ローカルからのアクティブ化」にチェックを入れたらOKをクリックします。

3. 手順終了

パソコンを再起動してイベントビューアーを確認しましょう。

Windows サービスには遅延起動するサービスがあるので、パソコンの起動処理が落ち着いてからイベントビューアーを確認しましょう。

エラーが記録されていなければ修復手順は成功です。

あとがき

マイクロソフト公式サイトで述べられていますが、DCOM エラーは特定のプロセスが DCOM コンポーネントに対するアクセス許可を持っていない時に発生します。

DCOM エラーは無視しても問題ないそうなので、今回メモした修復手順を実行せずに放置しておくのが自然な対応だろうと思います。

今回メモした手順はコンポーネントサービスのみで完結するので、レジストリエディターを使用しないためリスクは低いです。

support.microsoft.com の記事は次の通りです。

Windows 10 と Windows Server 2016 で DCOM のイベント ID 10016 がログに記録される

この問題は、イベント ログに示されている DCOM コンポーネントに対するアクセス許可を、特定のプロセスが持っていないために発生します。

これらのイベントは無視しても問題ありません。
おわり
次の投稿 前の投稿 ホーム

0 件のコメント:

コメントを投稿

にゃんつくばっと