WindowsでDistributedCOMエラー10016を修正する方法:ローカルアクティベーション権限の付与手順
この記事では、Windows 10やWindows Server 2012 R2などの環境で発生する、イベントID 10016(ソース:DistributedCOM)のエラーを解消する方法を詳しく解説します。DCOM 10016イベントはWindows XPの時代からクライアントOS・サーバーOSの両方で頻繁に報告されており、Windowsのバージョンに関わらず同じ手順で対処できます。
DCOMエラー10016とは
PCの起動時や特定のアプリケーションの起動・インストール時に、イベントビューアーの「システム」ログに以下のようなエラーが記録されるのが特徴です。
ログ名:System
ソース:DistributedCOM
イベントID:10016
レベル:エラー
ユーザー:SYSTEM
説明:コンピューターの既定のアクセス許可の設定では、CLSID {000209FF-0000-0000-C000-000000000046} およびAPPID Unavailable のCOMサーバーアプリケーションに対するローカルアクティブ化のアクセス許可が、ユーザー IIS APPPOOL\appIISPool SID(S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824)(LocalHost(LRPCを使用)から実行)に与えられていません。このセキュリティアクセス許可は、コンポーネントサービス管理ツールを使用して変更できます。
エラーの原因
エラーの内容を読み解くと、あるユーザー(例:IISアプリケーションプール)またはシステムアカウント(NT AUTHORITY\SYSTEM)がDCOMインフラ経由で特定のCOMコンポーネントを起動しようとしたものの、「ローカル起動」または「ローカルアクティブ化」の権限がないために失敗していることが分かります。エラーメッセージには対象COMコンポーネントのCLSIDとAPPIDのみが含まれているため、まずはその識別子がどのアプリケーションに該当するのかを特定し、必要な権限を付与していきます。
ステップ1:CLSIDとAPPIDを確認する
イベントの説明文からCLSIDとAPPIDをコピーします。今回の例では以下の通りです。
CLSID:{000209FF-0000-0000-C000-000000000046}
APPID:{AD65A69D-3831-40D7-9629-9B0B50A93843}
なお、ケースによってはAPPIDが「Unavailable」と表示され、識別子が明示されないこともあります。また、不足している権限の種類(ローカルアクティブ化など)と対象アカウント(NT AUTHORITY\SYSTEMやIIS APPPOOLのSIDなど)も併せて控えておきましょう。環境によってクラスID、アプリケーションID、アカウント、アクセスの種類は異なります。
ステップ2:レジストリでCLSIDの所有者と権限を変更する
- レジストリエディター(regedit.exe)を起動します。
- エラーに記載されたCLSIDに対応するレジストリキーへ移動します。今回の例では HKEY_CLASSES_ROOT\CLSID\{000209FF-0000-0000-C000-000000000046} です。場合によっては HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ も確認が必要です。リモートでレジストリに接続した場合は、HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID 配下に存在します。
- クラスのパラメーターにはアプリ名が表示されます(例ではMicrosoft Word Application)。DCOM 10016エラーで特によく報告されるコンポーネントは以下の通りです。
Immersive Shell
CLSID:{C2F03A33-21F5-47FA-B4BB-156362A2F239}
APPID:{316CDED5-E4AE-4B15-9113-7055D84DCC97}
RuntimeBroker
CLSID:{D63B10C5-BB46-4990-A94F-E40B9D520160}
APPID:{9CA88EE3-ACB7-47C8-AFC4-AB702511C276} - 該当するレジストリキーを右クリックし、「アクセス許可」を選択します。
- 「詳細設定」ボタンをクリックします。
- 「所有者」欄に NT Service\TrustedInstaller または SYSTEM が表示されていることを確認します。
- 「変更」ボタンをクリックし、自分の管理者アカウント名を指定して変更を保存します。
- 所有者が自分のアカウントに変わったことを確認し、「サブコンテナーとオブジェクトの所有者を置き換える」にチェックを入れて「OK」をクリックします。
- アクセス許可の一覧に管理者アカウントを追加し、「フルコントロール」を付与します。
これでCLSID側のレジストリキーの権限設定は完了です。続いて、同じ手順を繰り返して、エラーに記載されていたAPPID側のレジストリキー(例:HKEY_CLASSES_ROOT\AppID\{AD65A69D-3831-40D7-9629-9B0B50A93843})についても所有者の変更と権限の付与を行います。
ステップ3:コンポーネントサービスでDCOMの権限を設定する
- コンポーネントサービス管理コンソール(dcomcnfg)を管理者として起動します(コントロールパネル → すべてのコントロールパネル項目 → 管理ツール → コンポーネントサービス)。
- コンソールツリーで「コンポーネントサービス」→「コンピューター」→「マイコンピューター」→「DCOMの構成」へ移動します。COMコンポーネントの一覧から、先ほど特定したコンポーネント名を探します(「アプリケーションID」列の値が、DCOM 10016エラーに記載されていたCLSIDと一致することを確認してください)。一覧に目的のコンポーネントが見つからない場合は、64ビット版Windows上で32ビットコンポーネントを実行しようとしている可能性があります。その場合は次のコマンドでDCOMコンソールを起動してください。
mmc comexp.msc /32 - 「セキュリティ」タブを開きます。すべての設定項目が編集可能な状態になっているはずです。※レジストリキーの権限変更前にdcomcnfgを開いていた場合、管理者として起動していてもセキュリティタブの設定がグレーアウトして変更できない点に注意してください。その場合は一度コンソールを閉じて、権限変更後に再度開き直しましょう。
- 今回の例では、アプリケーションにローカルアクティブ化の権限がありませんでした。「起動とアクティブ化のアクセス許可」セクションで「カスタマイズ」を選択し、「編集」ボタンをクリックします。
- エラーの説明文に記載されていたアカウントをACL(アクセス制御リスト)に追加します。DCOM 10016エラーの内容に応じて、SYSTEM、特定のユーザー、あるいはIISアプリケーションプールの実行アカウントのいずれかです(IISプールの場合は、ローカルグループ「IIS_IUSRS」へのアクセス許可を追加します)。元のエラーで NT AUTHORITY\NETWORK SERVICE が指定されていた場合は、NetworkServiceアカウントに対してローカル起動およびアクティブ化の権限を割り当ててください。
- 追加したアカウントに必要な権限を付与します。たとえば「ローカルからの起動=許可」「ローカルからのアクティブ化=許可」と設定します。
ステップ4:再起動して動作を確認する
すべての設定が完了したらコンピューターを再起動し、イベントログを確認します。DCOM 10016エラーが新たに記録されていなければ、問題は解決です。
なお、DCOM 10016はシステム内部の権限チェックに関する警告的なエラーであり、実際のアプリケーション動作に大きな影響を与えないケースも多くあります。ただし、イベントログが大量のエラーで埋め尽くされると重要な障害の検出が遅れる可能性があるため、本記事の手順で適切に権限を設定しておくことをおすすめします。
-
Windows 10でDistributedCOMエラー10016を解決する2つの方法【初心者向けガイド】
Windows 10は世界で最も広く使われているOSですが、残念ながらエラーが一切起こらないわけではありません。数あるエラーの中でも、多くのユーザーを悩ませているのが「DistributedCOMエラー10016」です。幸いなことに、このエラーはそれほど危険なものではなく、深刻なダメージやシステムクラッシュ、忌み嫌われるブルースクリーン(BSOD)を引き起こすことはありません。とはいえ、エラーはできるだけ早く解消しておくべきもの。この記事では、Windows 10のDistributedCOMエラー10016の原因と解決策をわかりやすく解説します。 DistributedCOMエラー1001
-
Windowsで「ネットワークのプロキシ設定を自動的に検出できませんでした」エラーが出たときの対処法
Windowsのネットワーク接続アイコンに黄色い「!」マークが表示されたことはありませんか?これは非常にストレスの多いトラブルです。このエラーは、Windowsがインターネットに接続できなくなったときに発生することが多く、PC内のファイル破損が原因の場合もあります。Windowsには標準でトラブルシューティングツールが搭載されていますが、実行すると次のようなメッセージが表示されることがあります。 「Windowsがこのネットワークのプロキシ設定を自動的に検出できませんでした」 しかし、諦める必要はありません。Windowsのプロキシ設定の問題を解決する方法はいくつもあります。 この記事では、「