Regsvr32.exeを使用して DLL を登録しようとすると、0x80070005 エラーが表示されます

この記事では、Regsvr32.exeを使用して DLL を登録するときに発生する0x80070005 エラーの解決策について説明します。

元の KB 番号: 827659

現象

Regsrv32.exe コマンド ライン ツールを使用してダイナミック リンク ライブラリ (または DLL、または.dll ファイル) を登録しようとすると、DLL が登録されず、次のエラー メッセージが表示されることがあります。

file_name.dllの DllRegisterServer が失敗しました。

戻りコードは次のとおりです:0x80070005

注意

この動作は、Windows NT 4.0 または Windows 2000 では発生しません。

原因

この動作は、標準ユーザー グループのメンバーであるアカウントなど、管理者資格情報を持たないアカウントを使用してログオンしているときに Regsrv32 を使用して DLL を登録しようとした場合に発生する可能性があります。 管理者資格情報を持たないアカウントは、レジストリに書き込んだり、System32 フォルダー内のファイルを変更したりできません。

この動作は、Windows XP と Windows Server 2003 では、以前のバージョンの Windows よりも制限の厳しいセキュリティスキームが使用されているために発生します。 このスキームにより、標準ユーザーが DLL を登録できなくなります。

注意

この動作により、標準ユーザーは標準ユーザーの ID を使用して DLL を自己登録するプログラムを実行できない場合があります。

解決方法

この動作を解決するには、管理者アカウントを使用してログオンし、DLL を登録します。

詳細

DLL がレジストリに書き込んだり、System32 フォルダー内のファイルを変更したりしない限り、管理者資格情報を持たないアカウントを使用して DLL を登録できます。