2019-03-28T02:41:49Z kzstock [Event ID 4434] Complus (COM+) カタログファイルの修復(レベル:警告)|呼び出し側に権利がないために拒否されました
Scrap 2nd.
3

[Event ID 4434] Complus (COM+) カタログファイルの修復(レベル:警告)|呼び出し側に権利がないために拒否されました

1st:
検証:Windows 10 Pro April 2018, v1803



Windows 10 v1803 へアップデートしたタイミングで記録されるようになった イベントID4434 について記述しています。

私なりに調べたところでは、[イベントID4434:ソース Complus] は、Windows に付属する管理ツール「コンポーネントサービス」に起因するイベントログであることがわかりました。

コンポーネントサービスを起動して [COM+アプリケーション] を選択した時に、右ペインにコンポーネントが表示できない不具合のことを指していました。

冒頭の画像を見ていただきたいのですが、このイベントが記録されている時は、ハイライトしている右ペインのコンポーネント COM+ Utilities, System Application などが表示される代わりにカタログエラーが表示されます。

イベントID4434 のレベルは警告なので無理に修復する必要はありません。

この記事は、[イベントID4434:ソース Complus] が記録されている原因を除去して、イベントログに記録されないようにする手順についての情報があります。

同じエラーの修復を試みようと考えている方の参考になれば幸いです。


イベントビューアーのメッセージ

イベントビューアーに記録されていたメッセージは次の通りです。

イベントビューアーのメッセージ
メッセージCOM+ アプリケーションのオブジェクトに対するメソッドの呼び出しは、呼び出し側に権利がないために拒否されました。COM+ アプリケーションは、アプリケーションとコンポーネント レベルでのアクセス確認を行なうよう構成されており、これらの確認が使用可能になっています。呼び出し側が呼び出そうとしたコンポーネントのメソッドに関する情報および呼び出し側の ID に関する情報は、以下のとおりです。Svc/Lvl/Imp = 10/6/3, ID = DOMAIN\Username
ログの名前Application
ソースComplus
イベントID4434
レベル警告
ユーザーN/A
オペコード情報

COM+カタログファイルを復元する手順

[イベントID4434:ソース Complus] はCOM+コンポーネントの設定が破損していることを通知するために記録されています。

破損する原因は、出典サイトまたはあとがきを参照してください。

Windows Update で更新されたファイルは C:\Windows\WinSxS にバックアップとして保存されているので、バックアップファイルを利用してCOM+ (Complus) コンポーネントの設定を復元します。

具体的には次の通りです。

出典:support.microsoft.com

1. 復元するファイル R000000000001.clb を探す

R000000000001.clbは複数のフォルダーで見つかりますが、amd64_microsoft-windows-com-complus-runtime_xxx を探します。xxxはパソコン固有のハッシュ値です。

C:\Windows\WinSxS\amd64_microsoft-windows-com-complus-runtime_31bf3856ad364e35_10.0.17134.1_none_3f4b4b693ddbf374\R000000000001.clb

2. R000000000001.clb をCドライブのルートにコピーする

管理者モードで起動したコマンドプロンプトで R000000000001.clb をCドライブのルートにコピーするかまたは、エクスプローラーのコピー&ペーストを利用します。

エクスプローラーを利用する時は、「このフォルダーへコピーするには管理者の権限が必要です」と表示されるので「続行」を選択します。


コマンドプロンプトを利用する方法

From an administrative command prompt, run these three commands:

CD %windir%\winsxs\
CD *amd64*com-complus*runtime*
Dir

Verify that R000000000001.clb is present. Then, copy it from the current directory to the root of the C drive by running this command:

copy R000000000001.clb C:\R000000000001.clb

c:\_
管理者:コマンド プロンプトー □ × 
C:\>CD %windir%\winsxs\
C:\>CD *amd64*com-complus*runtime*
C:\>Dir

ディレクトリの内容が表示されるので、R000000000001.clb が存在していることを確認したら、次のコマンドを実行する。

C:\>copy R000000000001.clb C:\R000000000001.clb

3. vbsスクリプトファイルを作成する

COM_Restore.vbs ファイルを作成してCドライブ直下に配置します。

Cドライブルートに直接ファイルを保存すると、保存したファイルがエクスプローラーから見えなくなる可能性があるので、一旦別のフォルダーにファイルを保存してから、Cドライブにコピーするようにしましょう。

3-1. COM_Restore.txt を作成する
テキストエディターに以下のコマンドをコピーして、COM_Restore.txt の名前でマイドキュメントなどに保存します。

Dim objComCatalog

Set objComCatalog = CreateObject("COMAdmin.COMAdminCatalog")
objComCatalog.RestoreREGDB "C:\R000000000001.clb"

MsgBox "Backup Restored!"
Set objComCatalog = Nothing
3-2. COM_Restore.vbs にリネームする
COM_Restore.txt をCドライブ直下にコピーします。

この時、「このフォルダーへコピーするには管理者の権限が必要です」と表示されるので「続行」をクリックします。

コピーした COM_Restore.txt を COM_Restore.vbs にリネームします。

4. コマンドを実行する

管理者モードでコマンドプロンプトを起動して、次のコマンドを実行します。
>cscript C:\COM_Restore.vbs
c:\_
管理者:コマンド プロンプトー □ × 
C:\Windows\System32>cscript C:\COM_Restore.vbs

Backup Restored!と表示されたら成功です。

5. コンポーネントサービスを起動して確認する

コンポーネントサービス > コンソールルート > コンポーネントサービス > コンピューター > マイコンピューター > COM+アプリケーション

コンポーネントサービスの [COM+アプリケーション] をポイントしたときに、エラーメッセージが表示されなくなりました。

そして、右ペインにCOM+アプリケーションが表示されるようになりました。

6. 手順終了

以上で修復手順は終わりです。

あとがき

[イベントID4434:ソース Complus] に起因するカタログエラーは次のものです。

私は、カタログエラーを読んでも修復方法は思い浮かびませんでした。( ꒪⌓꒪)

カタログ エラー
文字起こし

「要求された操作を実行する権限がありません。ターゲット コンピューター上のシステム アプリケーションでセキュリティが有効になっている場合は、適切なロールに含まれているか確認してください。」

カタログエラーの原因判明!

Microsoft 公式サイトでヒントを見つけました。

その記事によると [イベントID4434:ソース Complus] はCOM+のカタログファイルが破損しているためにイベントログに記録されているとのこと。

その記事が対象としていたのは以下のOSです。
Windows 10 は対象外です。

  • Microsoft Windows XP Professional
  • Windows Vista Business
  • Windows 7 Enterprise

しかしながら、記載されたイベントビューアーのメッセージは冒頭でメモしているものと同じだったので、Windows 10 でも効果があると判断しました。

そして、前項の手順を実行したところ修復に成功しました。

マイクロソフト公式サイトに記載されていた修復手順原文は次の通りです。

Save the script to the root of C:\.

From the command prompt, run this command:
C:\cscript COM_Restore.vbs
Once you see the pop-up message stating that the backup is restored, restart the computer (this is required).

Finally, open Component Servers (dcomcnfg.exe) and see if you are still getting errors.
おわり
次の投稿 前の投稿 ホーム

0 件のコメント:

コメントを投稿

にゃんつくばっと