イベントIDエラー10016の修正:DCOMサーバーにPCNAME \ UsernameSIDのローカルアクティベーション権限がありません
最近、Windows 8.1 PCで、火曜日のパッチに更新プログラムをインストールした後、どこからともなくイベントログにエラーが記録され始めました。 エラーは分散COM(DCOM)に関連していました:
アプリケーション固有のアクセス許可設定は、CLSIDを持つCOMサーバーアプリケーションのローカルアクティベーションアクセス許可を付与しません {9E175B6D-F52A-11D8-B9A5-505054503030}およびAPPID {9E175B9C-F52A-11D8-B9A5-505054503030}をユーザーPCNAME \ UsernameSIDに追加します アプリケーションコンテナで実行されているアドレスLocalHost(LRPCを使用)からのS-1-5-21-81864976-3388411891-1937036257-1001使用できないSID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394)。 このセキュリティ権限は、ComponentServices管理ツールを使用して変更できます。
このような複雑なエラーは、経験の浅いユーザーを苛立たせる可能性があります。 彼らはこの用語に精通していません。 さらに、DCOMエラーのトラブルシューティングは面倒なので、最初は無視しましたが、イベントログは1時間ごとに発生するため、エラーでいっぱいでした。 それを修正することを決心し、私は調査することにしました。
広告
ご存じない方のために説明すると、COMはMicrosoftの古いオブジェクト指向のプロセス間通信テクノロジです。 COMサーバーは、一連のCOMオブジェクトを実装する実行可能ファイル(EXEまたはDLL)です。 多くのWindowsコンポーネントはCOMオブジェクトとして実装され、標準のCOMルールに従って相互に通信します。 COMサーバーはレジストリに登録されており、クラスID(CLSID)とAPPIDがあります。
このエラーのトラブルシューティングを行うための最初のステップは、CLSIDとAPPIDが関連するDCOMコンポーネントを見つけることでした。 したがって、レジストリエディタを起動し、次のレジストリキーに移動します。
HKEY_CLASSES_ROOT \ CLSID \ {9E175B6D-F52A-11D8-B9A5-505054503030}
このレジストリキーは、{9E175B9C-F52A-11D8-B9A5-505054503030}であるエラーメッセージと同じAppIDも指します。 だから、次に行く
HKCR \ APPID \ {9E175B9C-F52A-11D8-B9A5-505054503030}
これにより、コンポーネントはWSearch(Windows Search COMオブジェクト)であることがわかりました。
次のステップは、このCLSID / AppIDに、必要な正しいローカルアクティベーション権限(ユーザーのセキュリティID(SID)とアプリSID)を割り当てることでした。 これを行うために、Windowsは、ユーザーがCOMサーバーの起動およびアクティブ化のアクセス許可、アクセスのアクセス許可、および構成のアクセス許可を変更できるコンポーネントサービスツールを提供します。
[管理ツール]-> [コンポーネントサービス]を開きます。 [コンポーネントサービス]-> [コンピューター]-> [マイコンピューター]-> [DCOM構成]を展開します。 「WSearch」を見つけて右クリック->「プロパティ」。 [セキュリティ]タブに移動します。
これを行うと、このCOMオブジェクトの[セキュリティ]タブですべてがグレー表示(無効)になっていることがわかりました。そのため、最初にレジストリでユーザーアカウントに完全なアクセス許可を与える必要がありました。 もう一度Regeditを開いて、同じキーに移動しました
HKEY_CLASSES_ROOT \ AppID \ {9E175B9C-F52A-11D8-B9A5-505054503030}
権限を変更しました。 最初に所有権を取得し([サブコンテナとオブジェクトの所有者を置き換える]をオンにします)、次にユーザー名を追加してフルコントロールを付与する必要があります。 その後、所有権を元のアカウント(NT Service \ TrustedInstaller)に戻すことができます。
Winaeroを使用すると、所有権の取得と管理者権限の付与が非常に簡単になります。 RegOwnershipEx アプリ。
ここで、コンポーネントサービス(Dcomcnfg.exe)を再度開き、WSearchプロパティ、[セキュリティ]タブに移動し、 起動およびアクティブ化のアクセス許可のセキュリティアクセス許可を編集できるようになりました。 これ:
セキュリティグループEveryoneを通じて、私のユーザーアカウントには既にローカルアクティベーション権限がありますが、アイコンが示すように、既知のユーザーアカウントまたはグループではない他の3つのSIDも表示されます。 これらはアプリケーションSIDであり、アプリケーションを参照します。 イベントログエラーにも「... アプリケーションコンテナで実行されています使用できないSID(S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394)。
現在、WindowsオブジェクトピッカーUIでは、セキュリティプリンシパルオブジェクトのアプリケーションSIDを追加できないようです。 [追加]をクリックした後、[詳細...]をクリックしました。 次に、[今すぐ検索]。 これにより、すべてのオブジェクトが一覧表示されます。 しかし、それらのほとんどはアカウントSIDでした。 「ALLAPPLICATIONPACKAGES」という名前が示すように、おそらくすべてのアプリケーションパッケージのグループであることに気付いたので、それを選択しました。 どこでも[OK]をクリックして追加し、ローカル起動とローカルアクティベーションのアクセス許可を付与します。
[OK]をクリックしてコンポーネントサービスUIを閉じると、イベントログからエラーがなくなります。これは、WSearchCOMコンポーネントに正しいローカルの起動とアクティブ化のアクセス許可があることを意味します。
この記事は、他の人が同様の方法でイベントログのDCOMエラーをトラブルシューティングできるようにするための一般的なガイドとして作成しました。 Windowsに、COMオブジェクトが混乱した場合に、COMオブジェクトへの正しいアクセス許可を簡単に復元するためのツールがまだないのはなぜか心配です。