Windows 10で発生するDCOMイベントID 10016エラーの原因と解決方法
本記事では、Windows 10の通常操作中にイベントビューアーに表示されることがあるDCOM(DistributedCOM)イベントID 10016エラーについて、その原因を解説し、効果的な解決策をご紹介します。
分散コンポーネントオブジェクトモデル(DCOM)は、Windowsパソコンにおけるネットワーク通信の中核を担う重要な技術です。Microsoft独自の技術であり、アプリケーションがインターネットに接続するたびに自動的に動作します。従来のCOMが同一マシン上の情報にしかアクセスできないのに対し、DCOMはリモートサーバー上のデータにもアクセスできる点が大きな特徴です。
たとえば、多くのWebサイトやサービスは、リモートサーバーへアクセスするスクリプトを使用しています。システムがスクリプト経由でリクエストを送信すると、DCOMがそのリクエストを特定のスクリプトオブジェクトへ転送します。現代のアプリケーションのほとんどがネットワーク接続を利用していることを考えると、DCOMが日常的にどれほど頻繁に使われているかがお分かりいただけるでしょう。
DCOMイベントID 10016エラーの内容
Windows 10、Windows Server 2016、Windows Server 2019、Windows Server バージョン1903または1909が稼働するコンピューターでは、以下のようなイベント10016がシステムイベントログに記録される場合があります。
ソース: Microsoft-Windows-DistributedCOM
イベントID: 10016
説明: アプリケーション固有のアクセス許可設定では、CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
およびAPPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
を持つCOMサーバーアプリケーションに対して、アドレスLocalHost(LRPC使用)から実行されているユーザーNT AUTHORITY\SYSTEM SID(S-1-5-18)へのローカルアクティブ化のアクセス許可が付与されていません。このセキュリティアクセス許可は、コンポーネントサービス管理ツールを使用して変更できます。
上記のエラーは通常、イベントビューアーに記録されます。なお、イベントID 10016エラーにはいくつかのバリエーションが存在しますが、対処手順は基本的に同じです。
DCOMエラーは、アプリケーションやサービスがDCOMを使用しようとした際に適切な権限を持っていない場合に発生します。ほとんどの場合、DCOMエラーはイベントビューアーにログが蓄積される以外、システムへの悪影響はありません。これらの10016イベントは、Microsoftのコンポーネントが必要な権限なしでDCOMコンポーネントにアクセスしようとした際に記録されるものであり、これは仕様通りの動作です。
つまり、DCOMエラー自体は心配無用であり、無視しても安全です。ただし、イベントID 10016エラーが発生した際の対処方法はいくつか用意されていますので、以下で詳しく解説します。
DCOMイベントID 10016エラーの解決方法
方法1: XMLフィルターでエラーログを非表示にする
Microsoftが推奨しているのは、XMLフィルターを作成してDCOMイベントID 10016エラーを非表示にする方法です。手順は以下の通りです。
- イベントビューアーを開きます(Windowsキー + Rキーを押し、「ファイル名を指定して実行」ダイアログに eventvwr と入力してEnterキーを押します)。
- Windowsログ > システム をクリックします。
- 操作ウィンドウの 現在のログをフィルター をクリックします。
- XMLタブを選択し、手動でクエリを編集するオプションにチェックを入れます。
- 以下のXMLテキストをコピーしてフィルターダイアログに貼り付けます。
<QueryList>
<Query Id="0" Path="System">
<Select Path="System">*</Select>
<Suppress Path="System">
*[System[(EventID=10016)]]
and
*[EventData[
(
Data[@Name='param4'] and Data='{D63B10C5-BB46-4990-A94F-E40B9D520160}' and
Data[@Name='param5'] and Data='{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}' and
Data[@Name='param8'] and Data='S-1-5-18'
)
or
(
Data[@Name='param4'] and Data='{260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E}' and
Data[@Name='param5'] and Data='{260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E}'
)
or
(
Data[@Name='param4'] and Data='{C2F03A33-21F5-47FA-B4BB-156362A2F239}' and
Data[@Name='param5'] and Data='{316CDED5-E4AE-4B15-9113-7055D84DCC97}' and
Data[@Name='param8'] and Data='S-1-5-19'
)
or
(
Data[@Name='param4'] and Data='{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}' and
Data[@Name='param5'] and Data='{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}' and
Data[@Name='param8'] and Data='S-1-5-19'
)
]]
</Suppress>
</Query>
</QueryList>
このクエリでは、param4がCOMサーバーアプリケーションのCLSID、param5がAPPID、param8がセキュリティコンテキストのSIDにそれぞれ対応しており、これらはすべて10016イベントログに記録されています。
- OKをクリックします。
これで、イベントID 10016のDCOMエラーログは非表示になります。
方法2: レジストリエディターとDCOM構成ツールで権限を修正する
もうひとつの方法として、レジストリエディターとDCOM構成ツール(dcomcnfg)を使用してDCOMの権限問題を修正できます。
この修正にはレジストリの編集が伴うため、事前にレジストリのバックアップを取るか、システムの復元ポイントを作成することを強くおすすめします。
イベントがログに記録されないようにするには、特定のCLSIDおよびAPPIDを持つDCOMコンポーネントに権限を付与する必要があります。まず、エラーに記載されているCLASS IDに関連付けられているプロセスまたはサービスを特定しましょう。イベントの説明に記載されているCLSIDをコピーしてください。この例では{D63B10C5-BB46-4990-A94F-E40B9D520160}です。波括弧({})も含めて必ずコピーしてください。
次に、レジストリエディターを起動します。編集メニューから検索を選択し、検索ボックスにCLSIDを貼り付けてEnterキーを押します。
レジストリの検索が開始され、しばらくするとHKEY_CLASSES_ROOT\CLSIDキーの下に結果が表示されます。右側のペインには2つのキーがあり、(既定)の値にサービス名が表示されます。この例ではRuntimeBrokerと表示されるはずです。
プロセスを特定できたら、以下の手順でエラーを修正します。
- レジストリエディターで、RuntimeBrokerに関連付けられた次のAppIDキーへ移動します。
HKEY_CLASSES_ROOT\AppID\{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
既定では、このレジストリキーとそのサブキーの所有者はTrustedInstallerです。Administratorsをキーとサブキーの所有者に設定してください。レジストリキーの所有権の取得方法については、関連記事を参照してください。
- Administratorsを所有者に設定した後、AdministratorsグループとSYSTEMアカウントに対して、キーとサブキーのフルコントロール権限を割り当てます。
- レジストリエディターを終了します。
次に、DCOM構成ツールを起動します(Windowsキー + Rキーを押し、「ファイル名を指定して実行」ダイアログに dcomcnfg.exe と入力してEnterキーを押します)。
- コンポーネントサービス > コンピューター > マイコンピューター > DCOMの構成 をクリックします。
- イベントログに記録されたAppIDに対応するアプリケーションを右クリックし、プロパティを選択します。
この例でのアプリケーション名は、先ほど特定したRuntimeBrokerです。なお、DCOM構成ツールにはRuntimeBrokerのエントリが2つ表示される場合があります。正しいものを見つけるには、各項目を右クリックしてプロパティを開き、App IDがレジストリのものと一致するかを確認してください。
- セキュリティタブを選択します。
- 起動とアクティブ化のアクセス許可でユーザー指定を選択し、編集をクリックします。
DCOM構成のRuntimeBrokerプロパティページで編集ボタンがグレー表示になっている場合は、AppIDレジストリキーのアクセス許可を確認する必要があります。
- グループ名またはユーザー名の下にある追加を選択します。
- イベントログに記録されているグループ名またはユーザー名を入力します。たとえば、NT AUTHORITY\NETWORK SERVICE、NT AUTHORITY\SYSTEM、またはその他のグループ・アカウントが記録されている場合があります。
- OKをクリックします。
- 追加したユーザーまたはグループに対してローカルからのアクティブ化のアクセス許可を割り当て、作業を完了します。
この手順により、DCOM権限に関するイベントID 10016のエラーログを防止できます。
注意: Microsoftは、このエラーのログ記録を防ぐためにDCOMコンポーネントのアクセス許可を変更する方法を推奨していません。これらのエラーは機能に悪影響を及ぼさず、権限の変更は意図しない副作用をもたらす可能性があるためです。安全性を重視する場合は、方法1のXMLフィルターによる非表示化を選ぶのが賢明です。
この記事がお役に立てば幸いです!
-
Windows 10のイベントID 1000アプリケーションエラーを解決する方法【原因と対処法を徹底解説】
PC上でアプリケーションやプログラムがクラッシュすると、イベントビューアーのログに「イベント1000 アプリケーションエラー」が記録されることがあります。イベントID 1000は、何らかの未知の要因によって対象のアプリケーションがクラッシュしたことを示すものです。このエラーにはエラーIDと、該当アプリケーションの保存先ファイルパスが表示されます。このエラーが発生すると、アプリケーションが意図せず強制終了し、再度正常に起動できなくなる場合があります。頻繁にこのエラーに遭遇しているなら、今すぐ対処が必要です。本記事では、Windows 10でこのエラーを解決するための完璧なガイドをご紹介します。そ
-
Windows 11でイベントID 1001エラーを解決する6つの対処法
Windows 11でイベントID 1001のエラーに遭遇し、その解決方法をお探しですか?この記事では、お使いのデバイスでイベントIDエラーを解消するための複数の対処法をご紹介します。 イベントID 1001エラーは、主にシステムリソースへの高負荷、システムファイルの破損、サードパーティ製アプリケーションの干渉、ウイルスやマルウェアの感染などが原因で発生します。このエラーは、サードパーティ製アプリやサービスを実行しようとした際に発生し、デバイスがフリーズしたり、システムクラッシュにつながることもあります。 また、システム上でアプリを動作させるのに十分な空きRAMがない場合にも、このエラーが発