[EventId 10016] レジストリエディタを使用して ShellServiceHost に LOCAL SERVICE を追加する方法

このサイトを検索 | Search this site
warning

イベントID10016 /ShellServiceHost

イベントID10016 が記録されました。内容は、DistributedCOM (DCOM) と ShellServiceHost に関連するエラーログです。

このログは、LOCAL SERVICE が ShellServiceHost へのアクセスで問題が発生したことを通知しています。同時に、コンポーネントサービスを利用してアクセス許可を変更できることを示唆しています。

10016イベントは、Microsoft コンポーネントが必要なアクセス許可なしで DCOM コンポーネントにアクセスしようとしたときにログに記録されるものです。

マイクロソフトは、DCOM ログは仕様通りの動作のため無視を推奨しています。ただし、エラーを解消したい場合は、コンポーネントサービスを利用してアクセス許可を変更することができます。

ユーザーによるアクセス許可の変更は、予期しない副作用を引き起こす可能性があるため注意が必要です。

ログの説明

LOCAL SERVICE は、Windowsが使用する特別なアカウントです。

ShellServiceHost は、APPID{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}に付与されたコンポーネントの名前です。

対処法

通知されたログに対応するには、コンポーネントサービスを利用して ShellServiceHost のアクセス許可に LOCAL SERVICE を追加する方法が考えられます。



イベントログ

イベントログ
メッセージアプリケーション固有 のアクセス許可の設定では、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

修復方法

comexp

ログに記録された [APPID:ShellServiceHost] は、コンポーネントサービスを利用してアクセス許可を変更することができます。

但し、APPID は、所有者が「Trustedinstaller」のため、ユーザーアカウントや Administorator では設定を変更することができないので、レジストリエディタを使用して ShellServiceHost の所有者を一時的に Administorator に変更してからアクセス許可を編集します。

[レジストリエディター > コンポーネントサービス > レジストリエディター] と2つのシステムツールを交互に操作するので少々煩雑になります。

[使用するもの]
  1. レジストリエディタ
  2. コンポーネントサービス (comexp.msc)
[手順概要]
  1. レジストリエディターでAPPIDの所有者を変更する
  2. 変更した所有者のアクセス許可をフルコントロールに設定する
  3. コンポーネントサービスを起動してAPPIDにLOCAL SERVICEを追加する
  4. APPIDの所有者を元に戻す
  5. PCを再起動する
レジストリの操作は自己責任です
レジストリエディターを操作する前に、
不測の事態に備えてレジストリのバックアップを取っておきましょう。

1. レジストリエディターでAPPIDの所有者を変更する

1.1 レジストリエディターを起動する
ファイル名を指定して実行を起動して名前にregeditを入力してOKをクリックする。
ファイル名を指定して実行> regedit
1.2 APPIDを検索する
レジストリーエディターの検索ダイアログを起動する。

Ctrl+F または、編集 > 検索

{4839DDB7-58C2-48F5-8283-E1D1807D0D7D} を入力、次を検索 をクリックする。
レジストリエディター 検索
検索結果(ShellServiceHost)
\HKEY_CLASSES_ROOT\AppID\{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}
ShellServiceHost
1.3 所有者を TrustedInstaller から Administrators に変更する
ShellServiceHostの所有者を変更するには、現在操作しているWindowsにログインしているアカウント(自分のアカウント)が管理者権限のあるアカウント (Administratorsに所属しているアカウント) でなければなりません。
{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}を選択して、[右クリック > アクセス許可] を選択します。
ShellServiceHost:アクセス許可

当方の環境ではAdministratorsはグループまたはユーザー名に登録されていましたが、アクセス許可は[読み取り] になっていました。

試しに、フルコントロール にチェックを入れてOKをクリックしたらエラーを返されたので、所有者を変更します。

[詳細設定] をクリック、遷移する画面で所有者を確認すると TrustedInstaller になっていました。

変更 をクリックします。
所有者:TrustedInstaller

変更をクリックすると [ユーザーまたはグループの選択] 画面に遷移するので [詳細設定] をクリックします。

[検索] をクリックすると検索結果にAdministratorsがリストアップされるので選択状態にしてからOKをクリックします。

末尾に s のある方を選択しましょう。

選択するオブジェクトを入力してください に PC名¥Administrators が追加されたことを確認したらOKをクリック、遷移する画面でOKをクリックします。

2. Administratorsのアクセス許可をフルコントロールに変更する

[手順]
  1. グループ名またはユーザー名のAdministratorsを選択状態にする
  2. 下の窓のアクセス許可でフルコントロール ☑ 許可にチェックを入れてOKをクリックする

3. コンポーネントサービスを起動してAPPIDにLOCAL SERVICEを追加する

この手順では、APPIDは ShellServiceHost を指しています。

3.1 コンポーネントサービスを起動する
コンポーネントサービスを起動するには、ファイル名を指定して実行を起動して、名前に dcomcnfg と入力後OKを選択する。

または、[スタートメニュー > Windows 管理ツール > コンポーネントサービス] と遷移します。

3.2 アプリケーションIDを探す
APPID {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} は DCOMの構成を選択すると右ペインに表示される ”アプリケーション ID” 列から目視で探します。検索機能はありません。
アプリケーションIDと名前
APPIDの名前ShellServiceHost
APPID{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}
コンソールルート
∨コンポーネントサービス
∨コンピューター
∨マイコンピューター
DCOM の構成
3.3 プロパティを表示
レジストリ編集後はコンポーネントサービス dcomcnfg を再起動すると編集できるようになります。
ShellServiceHost > 右クリック > プロパティ
ShellServiceHost - プロパティ
3.4 編集画面を表示
セキュリティ > 起動とアクティブ化のアクセス許可 > 編集
セキュリティ>編集
3.5 検索画面を表示
追加 > 詳細設定 と進み表示されたダイアログから 検索をクリックします。

検索結果から LOCAL SERVICE を選択してOKをクリックします。

追加 > 詳細設定 > 検索
検索結果:LOCAL SERVICE
3.6 起動とアクティブ化のアクセス許可
[手順]
  1. LOCAL SERVICE をポイントして選択状態にする
  2. アクセス許可ボックスの [☑ローカルからのアクティブ化] にチェックを入れてOKをクリックする
  3. 手順終了

4. APPIDの所有者を元に戻す

手順3 が終わったら、レジストリエディターを起動して {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} の所有者を TrustedInstaller に戻します。手順1を参照してください。

TrustedInstaller は検索しても表示されないので、「ユーザーまたはグループの選択」画面の [選択するオブジェクトを入力してください] の下のボックスに直接入力します。

入力が終わったらOKをクリックします。

入力値NT SERVICE\TrustedInstaller

5. PCを再起動する

PCを再起動してイベントビューアーを確認しましょう。エラーが記録されなくなったら手順は成功しています。

改善しない時は、元の状態に戻してから自然回復するのを待ちましょう。

資料

マイクロソフトは、DCOMエラーは無視することを推奨しています。修復すると副作用が発生する可能性があるそうです。

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

これらの 10016 イベントは、Microsoft コンポーネントが必要なアクセス許可を持たずに DCOM コンポーネントにアクセスしようとすると記録されます。このケースでは、この動作は仕様通りです。

これらのイベントは、機能に悪影響を及ぼさず設計されているので、無視できます。これは、これらのイベントに対するお勧めのアクションです。

また、この問題を回避するには、DCOM コンポーネントのアクセス許可を変更して、このエラーを記録しないようにします。 ただし、これらのエラーは機能に悪影響を与えなくても、アクセス許可を変更すると予期しない副作用が発生する可能性があるため、お勧めしません。

まとめ

matome
reload
  • ログの概要

    イベントID10016、ソース:DistributedCOM (DCOM)、APPIDの名前:ShellServiceHost、ユーザー:LOCAL SERVICE

  • 10016イベントは、Microsoft コンポーネントが必要なアクセス許可なしで DCOM コンポーネントにアクセスしようとしたときにログに記録されるものです。
  • マイクロソフトは、DCOM ログは仕様通りの動作のため無視を推奨しています。ただし、エラーを解消したい場合は、コンポーネントサービスを利用してアクセス許可を変更することができます。
  • DCOMコンポーネントの所有者は TrustedInstaller のためアクセス許可を編集できないようにガードされています。
  • ExecTI を利用するとDCOMコンポーネントのアクセス許可を編集できるようになります。
  • 10016イベントが記録された時は、ログに APPID とユーザーが通知されていれば修復できる可能性があります。
  • ユーザーによるアクセス許可の変更は、予期しない副作用を引き起こす可能性があるため注意が必要です。
  • ShellServiceHost | SC2
Scrap 2nd.

復活してくるエラー達|Scrap 2nd.

10016イベントは、修復しても突然復活してきます。復活のトリガーは Windows Update により更新プログラムがインストールされた直後に多く見られます。どのようなイベントが復活してきたのかはこの復活リストで確認することができます。

ExecTI(フリーソフト)を利用する方法もあります。ShellServiceHost のアクセス許可を直接編集できるので手順が簡素化されます。

復活[EventId 10016] ShellServiceHost のアクセス許可に LOCAL SERVICE を追加する方法

復活[EventId 10016] ShellServiceHost のアクセス許可に LOCAL SERVICE を追加する方法

通知されたログに対応するには、コンポーネントサービスを利用してShellServiceHostにアクセス権を付与する方法が考えられます。コンポーネントサービスとExecTIを使用します。

検証:Windows 10 Pro Fall Creators Update, v1709
SC2
Windowsランキング 将棋ランキング スマホ・携帯ランキング にほんブログ村 IT技術ブログ ライフハックへ にほんブログ村 その他趣味ブログ 将棋へ

このサイトを検索 | Search this site