[EventId 10016] RuntimeBroker に NETWORK SERVICE を追加する方法【レジストリエディタ】

このサイトを検索 | Search this site
warning
APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276}

イベントID10016 /RuntimeBroker

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

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

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

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

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

ログの説明

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

RuntimeBroker は、APPID{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}に付与されたコンポーネントの名前です。

対処法

通知されたログに対応するには、コンポーネントサービスを利用して RuntimeBroker のアクセス許可に NETWORK SERVICE を追加する方法が考えられます。RuntimeBroker の所有者を変更するためにレジストリエディタを使用します。

Windows ビルドによっては RuntimeBroker は2つ見つかることがあります。この記事の対象は APPID{9CA88EE3-ACB7-47C8-AFC4-AB702511C276} です。



イベントログ

イベントログ
メッセージアプリケーション固有 のアクセス許可の設定では、CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
 および APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
 の COM サーバー アプリケーションに対するローカルアクティブ化のアクセス許可を、アプリケーション コンテナー 利用不可 SID (利用不可) で実行中のアドレス LocalHost (LRPC 使用) のユーザー NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20) に与えることはできません。このセキュリティ アクセス許可は、コンポーネント サービス管理ツールを使って変更できます。
ログの名前システム
ソースDistributedCOM (DCOM)
イベントID10016
レベルエラー
ユーザーNETWORK SERVICE
APPID{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
APPIDの名前RuntimeBroker

修復方法

comexp

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

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

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

[使用するもの]
  1. レジストリエディタ
  2. コンポーネントサービス (comexp.msc)
[手順概要]
  1. 管理者特権のあるアカウントでWindowsにログインする(Administorator)
  2. レジストリエディターで APPID の所有者を変更する
  3. 変更した所有者のアクセス許可をフルコントロールに設定する
  4. コンポーネントサービスを起動して APPID に NETWORK SERVICE を追加する
  5. APPID の所有者を元に戻す
  6. PCを再起動する

1. APPIDの所有者を変更する

レジストリの操作は自己責任です
レジストリエディターを操作する前に、
不測の事態に備えてレジストリのバックアップを取っておきましょう。
1.1 レジストリエディターを起動する
  1. ファイル名を指定して実行を起動する (Win)
  2. 名前の横のボックスに regedit と入力する
    Run
  3. OKをクリックする
  4. 以上
1.2 APPIDを検索する
  1. 検索ダイアログを起動 (Ctrl+F|編集>検索)
  2. {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} を入力
  3. 次を検索をクリックする
検索結果
\HKEY_CLASSES_ROOT\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}
1.3 所有者を変更する
RuntimeBroker の所有者を TrustedInstaller から Administrators に変更する。

右クリックして表示されるコンテキストメニューから ”アクセス許可” を選択します。

検証端末は Administrators のアクセス許可は「読み取り」でした。

フルコントロールにチェックを入れてOKをクリックするとエラーを返されるので、編集できるようにレジストリエディタを使用して所有者を変更します。

詳細設定(V)をクリック、遷移する画面で所有者が TrustedInstaller になっているので 変更 をクリックします。

ユーザーまたはグループの選択 画面で詳細設定(A)...をクリックします。

検索(N)をクリックすると Administrators がリストアップされるので選択状態にしてからOKをクリックします。末尾に s のある方を選択しましょう。

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

2. 所有者のアクセス許可をフルコントロールに設定する

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

グループ名またはユーザー名に Administrators がないときは追加ボタンから追加する必要があります。

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

3.1 コンポーネントサービスを起動する
  • ファイル名を指定して実行を起動して名前に dcomcnfg を入力してOKをクリック
  • または、スタートメニュー>Windows 管理ツール>コンポーネントサービス
3.2 アプリケーションIDを探す
APPIDはDCOMの構成を選択すると右ペインに表示される ”アプリケーション ID” 列から目視で探します。検索機能はありません。
コンソールルート
∨コンポーネントサービス
 ∨コンピューター
  ∨マイコンピューター
   >DCOM の構成

アプリケーションID列で {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} を探す。

アプリケーションIDと名前
APPIDの名前APPID
RuntimeBroker{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}
3.3 RuntimeBroker に NETWORK SERVICE を追加する
レジストリ編集前にコンポーネントサービス (dcomcnfg) を起動していた場合は、コンポーネントサービスを再起動すると編集できるようになります。

RuntimeBroker > 右クリック > プロパティ

RuntimeBrokerは複数登録されているので編集対象のアプリケーションID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} に対応したものを選択しましょう。

セキュリティタブ > 起動とアクティブ化のアクセス許可 > 編集(E)...

追加 > 詳細設定 > 検索

  1. 追加 > 詳細設定 と進む
  2. 表示されたダイアログから検索(N)をクリックする
  3. 検索結果一覧から NETWORK SERVICE を選択する
  4. OKをクリックする

”選択するオブジェクト名を入力してください” の下の窓に NETWORK SERVICE が追加されていることを確認してからOKをクリックする。

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

NETWORK SERVICE を選択した状態にして ”アクセス許可” の ☑ローカルからのアクティブ化 にチェックを入れてOKをクリックします。

RuntimeBroker のプロパティ画面に遷移するのでOK(または適用後にOK)をクリックする。

4. 変更した所有者を元に戻す

RuntimeBroker の所有者を [Trustedinstaller (既定の所有者)] に戻します。

TrustedInstaller は検索しても表示されないので直接入力します。

入力値NT SERVICE\TrustedInstaller

5. PCを再起動する

PCを再起動して、システムが安定した頃に(4~5分)イベントビューアーを確認します。

ログの記録が止まったら手順は成功です。効果が見られない時は、元の状態に戻して自然回復するまで待ちましょう。

資料

document_list

まとめ

matome
reload
  • ソース:DistributedCOM (DCOM)
  • APPIDの名前:RuntimeBroker
  • ユーザー:NETWORK SERVICE
  • DCOMイベントは、マイクロソフトは無視を推奨しているが、コンポーネントサービスを利用して修復できる可能性があります。
  • 具体的には、RuntimeBroker のアクセス許可に NETWORK SERVICE を追加する。
  • DCOMコンポーネントの所有者は TrustedInstaller のため通常の方法では設定変更できないため、レジストリエディタを使用して所有者を一時的に Administorators に変更します。
  • ExecTI を利用するとレジストリエディタが不要になります。
  • RuntimeBroker | SC2
[ExecTI] TrustedInstallerとしてアプリケーションを実行する方法

[ExecTI] TrustedInstallerとしてアプリケーションを実行する方法

ExecTIは、TrustedInstallerとしてアプリケーションを実行するソフトウェアです。DCOMエラーを修正する時に威力を発揮します。

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

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