イベントID10016 /ShellServiceHost
ログが記録された環境:Windows 10 バージョン 21H1 (OS ビルド 19043.1202)
イベント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) |
イベントID | 10016 |
レベル | 警告 |
ユーザー | LOCAL SERVICE |
APPID | {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} |
APPIDの名前 | ShellServiceHost |
緩和策
ログに記録された [APPID:ShellServiceHost] は、コンポーネントサービスを利用してアクセス許可を変更することができます。
但し、APPID は、所有者が「Trustedinstaller」のため、ユーザーアカウントや Administorator では設定を変更することができないので、ExecTI というフリーソフトウェアを利用して設定変更を行います。
具体例
1. ExecTI インストールと起動
インストーラーはありません。任意のフォルダに解凍したら、ExecTI.exe をダブルクリックします。
2. コンポーネントサービスを起動する
Openの横のボックスに comexp.msc と入力してからOKをクリックすると TrustedInstaller としてコンポーネントサービスが起動します。コンポーネントサービスの外観は通常起動したものと同じですが、{B0316D0C-...} が編集できる状態です。
レジストリエディタで所有者を変更する手順は不要です。
3. APPIDのプロパティを表示する
検索機能がないので右ペインの名前列から ShellServiceHost を目視で探します。
4. 起動とアクティブ化のアクセス許可を表示する
次の手順を実行する。
- 編集をクリックする
- Windows セキュリティダイアログが表示されるので削除をクリックする
- 起動とアクティブ化のアクセス許可が表示される
起動とアクティブ化のアクセス許可
5. LOCAL SERVICE を追加する
- 追加 > 詳細設定 > 検索。
- 検索結果から LOCAL SERVICE を選択する。
- OKを選択する。
- 「選択するオブジェクト名を入力してください」の下のボックスに SYSTEM が表示されていることを確認したらOKを選択する。
- 起動とアクティブ化のアクセス許可の画面に戻るので LOCAL SERVICE が選択状態になっていることを確認します。
6. ローカルからのアクティブ化を有効にする
- LOCAL SERVICE を選択する。
- アクセス許可の下のボックスの「☑ローカルからのアクティブ化」にチェックを入れる。
- OKを選択する。
7. 手順終了
- PCを再起動する。
- PCのスタートアップ処理が落ち着くまで待つ。 (4~5分)
- イベントビューアーを起動してログを調べる。
- ログの記録が止まらない時は、変更した設定を元に戻して静観する。(この手順は無駄でした...残念!)
資料
LocalService として実行されるサービスは、通常のユーザーとしてローカル リソースにアクセスし、匿名ユーザーとしてネットワーク リソースにアクセスします。 その結果、LocalService として実行されるサービスは、ローカルおよびネットワーク上で LocalSystem として実行されるサービスよりも権限が大幅に少なくなっています。Microsoft Docs
Windows 10 と Windows Server 2016 で DCOM のイベント ID 10016 がログに記録される
この問題は、イベント ログに示されている DCOM コンポーネントに対するアクセス許可を、特定のプロセスが持っていないために発生します。
~
これらのイベントは無視しても問題ありません。
support.microsoft.com
まとめ
前回 ShellServiceHost を修復した時の記事です。こちらのほうが少し詳しい。
このサイトを検索 | Search this site
0 コメント