イベント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) |
イベントID | 10016 |
レベル | エラー |
ユーザー | LOCAL SERVICE |
APPID | {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} |
APPIDの名前 | ShellServiceHost |
修復方法
ログに記録された [APPID:ShellServiceHost] は、コンポーネントサービスを利用してアクセス許可を変更することができます。
但し、APPID は、所有者が「Trustedinstaller」のため、ユーザーアカウントや Administorator では設定を変更することができないので、レジストリエディタを使用して ShellServiceHost の所有者を一時的に Administorator に変更してからアクセス許可を編集します。
[レジストリエディター > コンポーネントサービス > レジストリエディター] と2つのシステムツールを交互に操作するので少々煩雑になります。
不測の事態に備えてレジストリのバックアップを取っておきましょう。
1. レジストリエディターでAPPIDの所有者を変更する
Ctrl+F または、編集 > 検索
当方の環境ではAdministratorsはグループまたはユーザー名に登録されていましたが、アクセス許可は[読み取り] になっていました。
試しに、フルコントロール にチェックを入れてOKをクリックしたらエラーを返されたので、所有者を変更します。
[詳細設定] をクリック、遷移する画面で所有者を確認すると TrustedInstaller になっていました。
変更をクリックすると [ユーザーまたはグループの選択] 画面に遷移するので [詳細設定] をクリックします。
[検索] をクリックすると検索結果にAdministratorsがリストアップされるので選択状態にしてからOKをクリックします。
末尾に s のある方を選択しましょう。
選択するオブジェクトを入力してください に PC名¥Administrators が追加されたことを確認したらOKをクリック、遷移する画面でOKをクリックします。
2. Administratorsのアクセス許可をフルコントロールに変更する
3. コンポーネントサービスを起動してAPPIDにLOCAL SERVICEを追加する
この手順では、APPIDは ShellServiceHost を指しています。
または、[スタートメニュー > Windows 管理ツール > コンポーネントサービス] と遷移します。
APPIDの名前 | ShellServiceHost |
APPID | {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} |
コンソールルート
∨コンポーネントサービス
∨コンピューター
∨マイコンピューター
∟DCOM の構成
|
検索結果から LOCAL SERVICE を選択してOKをクリックします。
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 コンポーネントのアクセス許可を変更して、このエラーを記録しないようにします。 ただし、これらのエラーは機能に悪影響を与えなくても、アクセス許可を変更すると予期しない副作用が発生する可能性があるため、お勧めしません。
まとめ
ExecTI(フリーソフト)を利用する方法もあります。ShellServiceHost のアクセス許可を直接編集できるので手順が簡素化されます。
このサイトを検索 | Search this site