WindowsでDCOMエラー10016をトラブルシューティングして修正する方法

厄介な DCOM エラー 10016 に対処するのは、特に PC がクラッシュしたり、アプリが奇妙な動作をしたりする場合には、かなり面倒です。これは、Windows Update やサードパーティ製ソフトウェアなどが原因で、レジストリや DCOM 設定のアクセス許可が混乱しているだけの場合もあります。幸いなことに、これらのエラーを解消したり、少なくとも煩わしさを軽減したりするのに役立つ確実な解決策がいくつかあります。これらの調整には多少時間がかかるかもしれませんが、アプリを起動するたびにエラーが表示されるのにうんざりしている場合や、システムがランダムにクラッシュする場合は、試してみる価値があります。注意点として、レジストリのアクセス許可を変更するのはそれほど複雑ではありませんが、間違いは他の問題を引き起こす可能性があるため、注意が必要です。時間をかけて、できれば事前にバックアップを取っておきましょう。

WindowsでDCOMエラー10016を修正する方法

方法1:影響を受けるアプリケーションに権限を付与する

この修正は基本的に、ユーザーアカウントが問題のあるCOMサーバーを起動するための適切な権限を持っていることをWindowsに伝えるものです。「アプリケーション固有のアクセス許可設定により、COMサーバーアプリケーションに対するローカル起動のアクセス許可が付与されていません…」といったエラーが表示される場合に役立ちます。アクセス許可がブロックされている場合、アプリケーションがクラッシュしたり、まったく起動しなかったりする可能性があります。

  • キーを押して「Windows + Rファイル名を指定して実行」ボックスを開きます。RegEditと入力してEnterキーを押します。 レジストリエディターがここで役立ちます。管理者権限が必要な場合もあるため、必要に応じて右クリックして「管理者として実行」を選択してください。
  • レジストリエディターで、まずHKEY_CLASSES_ROOTを展開します。その中のCLSIDフォルダーを探してください。ここに、Windows が COM コンポーネントの一意の識別子を保持しています。
  • エラーメッセージに表示されているCLSIDを含むフォルダを探してください。例えば、エラーが{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}というCLSIDに関連している場合は、そのフォルダを探してください。CLSIDは長い文字列なので、探すのに手間がかかるかもしれません。そのため、何度も検索したり、スクロールしたりする必要があるでしょう。
  • 対象の CLSID フォルダーを右クリックし、[アクセス許可]を選択します。[詳細設定]をクリックします。
  • 所有者を管理者グループに変更してください。Windowsは奇妙な方法でアクセス許可をロックする傾向があるためです。「サブコンテナーとオブジェクトの所有者を置き換える」にチェックを入れて、変更が下位のグループにも反映されるようにしてください。
  • 次に、[追加]をクリックして「Everyone」と入力し、 [許可]の下のチェックボックスをオンにして、フルコントロールを付与します。
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Oleにさらに移動します。ここに、以下のキーが存在する場合は削除します。
    • DefaultAccessPermission
    • DefaultLaunchPermission
    • MachineAccessRestriction
    • MachineLaunchRestriction
  • 権限の設定とキーのクリーンアップが完了したら、コンポーネントサービスに移動してください。
    • コントロールパネルを開き、「アイコン表示」>「管理ツール」>「コンポーネントサービス」を選択します。
    • 「コンピュータ」「マイコンピュータ」を選択してください。
    • エラーの原因となっているコンポーネントを見つけて右クリックし、「プロパティ」を選択します。
    • セキュリティタブに切り替えてください。権限が正しく設定されていれば、該当する権限カテゴリ(起動、アクティベーションなど)の下にある「カスタマイズ」をクリックできるはずです。
    • 灰色表示や警告が表示される場合は、レジストリのアクセス許可または所有者設定を再度確認してください。
    • すべて問題なければ、各カテゴリの権限を編集し、システムが追加されていることを確認し、[許可] の下のチェックボックスをオンにして、ローカル起動ローカルアクティベーションの権限を与えます。
  • エラーに関連するすべての CLSID および APPID エントリに対して、アクセス許可の手順を繰り返してください。完了したら、再起動してください。Windows がこれらのアクセス許可を更新する必要があるためです。

方法2:特定のレジストリキーを削除してアクセス許可をリセットする

レジストリ内のどこかでアクセス許可が複雑に絡み合っている場合、特定のキーを削除することで、Windowsがアクセス許可を正しくリセットできるようになることがあります。これはやや最終手段ではありますが、アクセス許可の修正だけでは解決しない場合に有効な場合が多いです。

  • を押しWindows + Sて入力しますRegistry Editor。右クリックして「管理者として実行」を選択します。
  • 次の場所に移動してくださいHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole。レジストリの編集は他の機能に悪影響を与える可能性があるため、注意してください。
  • 以下のキーが存在する場合は削除してください。
    • DefaultAccessPermission
    • DefaultLaunchPermission
    • MachineAccessRestriction
    • MachineLaunchRestriction
  • レジストリエディタを閉じてから、PCを再起動してください。通常、これでWindowsはこれらのキーを正しく再作成し、アクセス許可の競合を解決します。

こうしたエラーは、Windowsの自己修復機能が誤作動したり、アクセス許可の問題で見落とされたりすることが原因で発生することがあります。指示に注意深く従えば、こうした操作によってさらに問題が悪化することはほとんどありませんが、万が一に備えてバックアップを取っておくことは常に良いことです。

まとめ

  • 特定のアプリを起動しようとしたときにDCOMエラーが表示される場合は、レジストリとコンポーネントサービスを介してアプリのアクセス許可を付与してください。
  • レジストリキーを削除したり、アクセス許可を変更したりする前に、必ずバックアップを取ってください。
  • 変更を加えた後、PCを再起動して、エラーがまだ表示されるかどうかを確認してください。

まとめ

この一連の作業は面倒に感じるかもしれませんが、アクセス許可を修正することで、クラッシュや不具合の原因となる頑固なDCOMエラーが解消されることがあります。アクセス許可やレジストリのクリーンアップで解決しない場合は、システムファイルのスキャンや修復インストールを試してみる価値があるかもしれません。この情報が、エラー10016による厄介なクラッシュを回避または解決するのに役立つことを願っています。必ずしも簡単ではありませんが、根気強く取り組むことで必ず解決します。頑張ってください!