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

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

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 827659

現象

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

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

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

注:

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

原因

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

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

注:

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

解決方法

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

詳細

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