Windows
 Computer >> コンピューター >  >> システム >> Windows

Windows 10でDCOMイベントID 10016エラーを修正する方法:アプリケーション固有のアクセス許可設定でローカルアクティブ化が許可されない場合の対処法

イベントビューアーに「アプリケーション固有のアクセス許可設定では、COMサーバーアプリケーションに対するローカルアクティブ化のアクセス許可が与えられていません」というエラーメッセージが表示された場合、この記事が役立ちます。このエラーはDCOMイベントID 10016として記録され、主にOSのアップグレード後に発生します。通常のWindows 10ユーザーの操作体験には影響しませんが、なぜこの現象が起こるのか、そしてどう対処すればよいのかを知りたい方も多いでしょう。

これらの10016イベントは、Microsoftコンポーネントが必要なアクセス許可なしでDCOMコンポーネントにアクセスしようとした際に記録されます。システムの機能に悪影響を及ぼさず、設計上の動作であるため、通常は無視しても安全です。

エラーメッセージ全体は以下のようになります。

CLSID {C2F03A33-21F5-47FA-B4BB-156362A2F239} および APPID {316CDED5-E4AE-4B15-9113-7055D84DCC97} のCOMサーバーアプリケーションに対するローカルアクティブ化のアクセス許可が、アプリケーション固有のアクセス許可設定では、ユーザー NT AUTHORITY\LOCAL SERVICE SID(S-1-5-19)(アドレスLocalHost(LRPC使用)、アプリケーションコンテナー利用不可SID(利用不可))に与えられていません。このセキュリティアクセス許可は、コンポーネントサービス管理ツールを使用して変更できます。

なお、CLSIDとAPPIDはコンピューター上のコンポーネントサービスを表すため、環境によって異なる値になります。解決策については、すでにエラーメッセージ内にも示されています。つまり、Windows 10の管理ツールからセキュリティアクセス許可を変更する必要があります。

「ローカルアクティブ化が許可されない」エラーの修正手順

Windows 10でこのエラーを修正するには、以下の手順に従います。

  1. CLSIDとAPPIDを特定して確認する
  2. レジストリエディターでCLSIDキーの所有権を変更する
  3. コンポーネントサービスでセキュリティアクセス許可を変更する

それぞれの手順を詳しく見ていきましょう。

1. CLSIDとAPPIDを特定・確認する

まず、CLSIDとAPPIDを特定します。環境によって値が異なるため、正確に認識することが非常に重要です。これを怠ると、イベントビューアーのエラーメッセージを解消できません。上記のエラーメッセージでは、CLSIDは{C2F03A33-21F5-47FA-B4BB-156362A2F239}、APPIDは{316CDED5-E4AE-4B15-9113-7055D84DCC97}です。SIDという項目もありますが、現時点では必要ありません。

2. レジストリエディターでCLSIDキーの所有権を変更する

次に、問題の原因となっているコンポーネントを見つけます。そのために、レジストリエディターを開きます。Win+Rキーを押し、「regedit」と入力してEnterキーを押してください。その後、以下のパスに移動します。

HKEY_Classes_Root\CLSID\<ここにCLSIDを入力>

「ここにCLSIDを入力」の部分は、エラーメッセージで確認した実際のCLSIDに置き換えてください。該当キーに移動すると、右側にAPPIDが表示されるはずです。このAPPIDがエラーメッセージに記載されていたAPPIDと一致していることを確認してください。確認できたら、左側のツリーでCLSIDキーを右クリックし、「アクセス許可」を選択します。

続いて、「詳細設定」ボタンをクリックします。

デフォルトでは、このキーの所有者はTrustedInstallerですが、Administrator(Administrators)に変更する必要があります。「セキュリティの詳細設定」ウィンドウで「変更」リンクをクリックし、「Administrator」と入力して「名前の確認」ボタンをクリックし、「OK」ボタンを押します。

また、「サブコンテナーとオブジェクトの所有者の置き換え」チェックボックスにも必ずチェックを入れてください。

その後、「グループ名またはユーザー名」の一覧から「Administrators」を選択し、「フルコントロール」の「許可」チェックボックスにチェックを入れます。最後に設定を保存します。

さらに、「既定 – データ」の名前も確認しておきましょう。この例では、既定のデータ名はImmersive Shellです。エラーメッセージ内のCLSIDとAPPIDが異なれば、この名前も変わります。

次に、APPIDについても所有権を取得します。レジストリエディターで以下のパスに移動してください。

HKEY_Local_Machine\Software\Classes\AppID\your-APPID

先ほどと同じ手順で、このレジストリキーの所有権を変更します。

レジストリキーの所有権変更で問題が発生した場合は、ワンクリックで実行できる無料ツール「RegOwnit」を利用すると便利です。

3. コンポーネントサービスでセキュリティアクセス許可を変更する

以上の手順が完了したら、「コンポーネントサービス」を開きます。タスクバーの検索ボックスで検索し、該当する結果をクリックしてください。コンポーネントサービスを開いたら、以下の場所へ移動します。

コンポーネントサービス > コンピューター > マイコンピューター > DCOMの構成 > Immersive Shell

この例では、CLSIDがImmersive Shellというコンポーネントサービスと一致しています。レジストリエディターで確認した「既定 – データ」の名前と一致するものを探してください。見つかったら、コンポーネントサービスを右クリックして「プロパティ」を選択します。ここで「アプリケーションID」(APPID)を再度確認できます。

次に、「セキュリティ」タブに移動します。ここには「起動とアクティブ化のアクセス許可」を含む3つの項目があります。対応する「編集」ボタンをクリックしてください。

警告メッセージが表示された場合は、「キャンセル」ボタンをクリックして先へ進みます。上記と同じ手順で、以下の2つのアカウントを追加します。

  • SYSTEM
  • LOCAL SERVICE

追加後、それぞれを1つずつ選択し、両方のアカウントに「ローカルからの起動」および「ローカルからのアクティブ化」のアクセス許可を付与します。

変更を保存すれば、今後イベントビューアーで同じ問題が表示されることはありません。

RuntimeBrokerやImmersive Shellなど、どのプロセスでこの問題が発生しても、解決策は共通です。

  1. 【解決済み】イベントID 10016「アプリケーション固有のアクセス許可設定により、COMサーバーアプリケーションのローカル起動が許可されていません」エラーの直し方

    イベントID 10016エラーとは? Windows 10、Windows Server 2019、または Windows Server 2016 を搭載したパソコンのイベントビューアーに、イベントID「10016」というシステム警告「アプリケーション固有のアクセス許可設定では、COM サーバー アプリケーションに対するローカル起動のアクセス許可が付与されません(Application Specific Permission Settings do not Grant Local Activation permission for COM Server Application…)」が記録される

  2. Windowsで「ネットワークのプロキシ設定を自動的に検出できませんでした」エラーが出たときの対処法

    Windowsのネットワーク接続アイコンに黄色い「!」マークが表示されたことはありませんか?これは非常にストレスの多いトラブルです。このエラーは、Windowsがインターネットに接続できなくなったときに発生することが多く、PC内のファイル破損が原因の場合もあります。Windowsには標準でトラブルシューティングツールが搭載されていますが、実行すると次のようなメッセージが表示されることがあります。 「Windowsがこのネットワークのプロキシ設定を自動的に検出できませんでした」 しかし、諦める必要はありません。Windowsのプロキシ設定の問題を解決する方法はいくつもあります。 この記事では、「