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

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の所有者と権限を変更する

  1. レジストリエディター(regedit.exe)を起動します。
  2. エラーに記載されたCLSIDに対応するレジストリキーへ移動します。今回の例では HKEY_CLASSES_ROOT\CLSID\{000209FF-0000-0000-C000-000000000046} です。場合によっては HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ も確認が必要です。リモートでレジストリに接続した場合は、HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID 配下に存在します。
  3. クラスのパラメーターにはアプリ名が表示されます(例では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}
  4. 該当するレジストリキーを右クリックし、「アクセス許可」を選択します。
  5. 「詳細設定」ボタンをクリックします。
  6. 「所有者」欄に NT Service\TrustedInstaller または SYSTEM が表示されていることを確認します。
  7. 「変更」ボタンをクリックし、自分の管理者アカウント名を指定して変更を保存します。
  8. 所有者が自分のアカウントに変わったことを確認し、「サブコンテナーとオブジェクトの所有者を置き換える」にチェックを入れて「OK」をクリックします。
  9. アクセス許可の一覧に管理者アカウントを追加し、「フルコントロール」を付与します。

これでCLSID側のレジストリキーの権限設定は完了です。続いて、同じ手順を繰り返して、エラーに記載されていたAPPID側のレジストリキー(例:HKEY_CLASSES_ROOT\AppID\{AD65A69D-3831-40D7-9629-9B0B50A93843})についても所有者の変更と権限の付与を行います。

ステップ3:コンポーネントサービスでDCOMの権限を設定する

  1. コンポーネントサービス管理コンソール(dcomcnfg)を管理者として起動します(コントロールパネル → すべてのコントロールパネル項目 → 管理ツール → コンポーネントサービス)。
  2. コンソールツリーで「コンポーネントサービス」→「コンピューター」→「マイコンピューター」→「DCOMの構成」へ移動します。COMコンポーネントの一覧から、先ほど特定したコンポーネント名を探します(「アプリケーションID」列の値が、DCOM 10016エラーに記載されていたCLSIDと一致することを確認してください)。一覧に目的のコンポーネントが見つからない場合は、64ビット版Windows上で32ビットコンポーネントを実行しようとしている可能性があります。その場合は次のコマンドでDCOMコンソールを起動してください。mmc comexp.msc /32
  3. 「セキュリティ」タブを開きます。すべての設定項目が編集可能な状態になっているはずです。※レジストリキーの権限変更前にdcomcnfgを開いていた場合、管理者として起動していてもセキュリティタブの設定がグレーアウトして変更できない点に注意してください。その場合は一度コンソールを閉じて、権限変更後に再度開き直しましょう。
  4. 今回の例では、アプリケーションにローカルアクティブ化の権限がありませんでした。「起動とアクティブ化のアクセス許可」セクションで「カスタマイズ」を選択し、「編集」ボタンをクリックします。
  5. エラーの説明文に記載されていたアカウントをACL(アクセス制御リスト)に追加します。DCOM 10016エラーの内容に応じて、SYSTEM、特定のユーザー、あるいはIISアプリケーションプールの実行アカウントのいずれかです(IISプールの場合は、ローカルグループ「IIS_IUSRS」へのアクセス許可を追加します)。元のエラーで NT AUTHORITY\NETWORK SERVICE が指定されていた場合は、NetworkServiceアカウントに対してローカル起動およびアクティブ化の権限を割り当ててください。
  6. 追加したアカウントに必要な権限を付与します。たとえば「ローカルからの起動=許可」「ローカルからのアクティブ化=許可」と設定します。

ステップ4:再起動して動作を確認する

すべての設定が完了したらコンピューターを再起動し、イベントログを確認します。DCOM 10016エラーが新たに記録されていなければ、問題は解決です。

なお、DCOM 10016はシステム内部の権限チェックに関する警告的なエラーであり、実際のアプリケーション動作に大きな影響を与えないケースも多くあります。ただし、イベントログが大量のエラーで埋め尽くされると重要な障害の検出が遅れる可能性があるため、本記事の手順で適切に権限を設定しておくことをおすすめします。

  1. Windows 10でDistributedCOMエラー10016を解決する2つの方法【初心者向けガイド】

    Windows 10は世界で最も広く使われているOSですが、残念ながらエラーが一切起こらないわけではありません。数あるエラーの中でも、多くのユーザーを悩ませているのが「DistributedCOMエラー10016」です。幸いなことに、このエラーはそれほど危険なものではなく、深刻なダメージやシステムクラッシュ、忌み嫌われるブルースクリーン(BSOD)を引き起こすことはありません。とはいえ、エラーはできるだけ早く解消しておくべきもの。この記事では、Windows 10のDistributedCOMエラー10016の原因と解決策をわかりやすく解説します。 DistributedCOMエラー1001

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

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