Regsvr32 ツールを使用する方法および Regsvr32 のエラー メッセージをトラブルシューティングする方法

Support for Windows XP has ended

Microsoft ended support for Windows XP on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

表示されるエラー メッセージがこの資料で説明されていない場合は、TechNet のイベントとエラー メッセージ ページで、詳細なエラー メッセージの説明、推奨される対処、およびその他のサポート リソースを参照できます。
概要
Regsvr32 は、Windows レジストリ内の DLL や ActiveX コントロールなどの OLE コントロールを登録および登録解除するためのコマンドライン ユーティリティです。 Windows XP 以降のバージョンの Windows では Regsvr32.exe は %systemroot%\System32 フォルダーにインストールされます。

注: 64 ビット版の Windows オペレーティング システムには、次の 2 つのバージョンの Regsv32.exe ファイルがあります。
  • 64 ビット版は %systemroot%\System32\regsvr32.exe です。
  • 32 ビット版は %systemroot%\SysWoW64\regsvr32.exe です。
Regsvr32 コマンドの構文
RegSvr32.exe のコマンド ライン オプションは次のとおりです。
Regsvr32 [/u] [/n] [/i[:cmdline]] <DLL 名>

/u - サーバーの登録を解除します。
/i - DllInstall を呼び出し、それにオプションの [cmdline] を渡します。/u と共に使用された場合、dll のアンインストールを呼び出します。
/n - DllRegisterServer を呼び出しません。このオプションは /i と共に使用する必要があります。
/s - サイレント モードで実行します。メッセージ ボックスは表示されません。
Regsvr32 エラーの一般的な解決方法
Regsvr32 エラーが発生した場合は次のいずれかの方法を試します。
  • 方法 1: 管理者特権のコマンド プロンプトから Regsvr32 コマンドを再実行する

    管理者特権のコマンド プロンプトを開くには、次の手順を実行します。
    Windows 8.1 および Windows 8
    画面の右端からスワイプし、[検索] をタップします。または、マウスを使用している場合は、画面の右下をポイントし、[検索] をクリックします。[検索] ボックスに、「コマンド プロンプト」と入力し、[コマンド プロンプト] を右クリックし、[管理者として実行] をクリックします。管理者のパスワードを要求するダイアログ ボックスが表示された場合はパスワードを入力して [OK] をクリックし、確認を要求するダイアログ ボックスが表示された場合は [許可] をクリックします。
    Windows 7 および Windows Vista
    [スタート] ボタンをクリックし、[検索] ボックスに「コマンド プロンプト」または「cmd」と入力して、[管理者として実行] をクリックします。管理者のパスワードを要求するダイアログ ボックスが表示された場合はパスワードを入力して [OK] をクリックし、確認を要求するダイアログ ボックスが表示された場合は [許可] をクリックします。
    Windows XP
    管理者アカウントまたは管理者の権限を持つアカウントを使用してログオンし、コマンド プロンプト ウィンドウを開きます。
  • 方法 2: 64 ビット版の Windows 上で 32 ビット版の Regsvr32 を使用して 32 ビットの DLL を登録する

    64 ビット版の Windows 上で 32 ビットの DLL を登録するときにエラーが発生した場合は、次の手順を実行します。
    1. 管理者としてコマンド プロンプトを開きます。
    2. 32 ビットの DLL が %systemroot%\System32 フォルダー内にある場合は、%systemroot%\SysWoW64 フォルダーに移動します。
    3. 次のコマンドを実行します。
      %systemroot%\SysWoW64\regsvr32 <Placeholder><DLL の完全なパス></Placeholder>
Regsvr32 のエラー メッセージ

Windows Vista 以降のバージョンの Windows での Regsvr32 のエラー メッセージ

下の表には、RegSvr32 のエラー メッセージと考えられる原因が記載されています。
エラー メッセージ原因
コマンド フラグ ""%1"" は無効です。コマンドの使用法を確認してから再試行してください。オプションの無効な組み合わせがコマンド ラインで Regsvr32.exe に渡されました。
このコマンドは Microsoft Visual Studio OLE ActiveX コントロール プロジェクトが開かれているときだけ有効です。Regsvr32.exe は Visual Studio により呼び出されましたが、コマンド ラインではモジュールが指定されていません。
モジュールを登録するには、バイナリ名を指定する必要があります。Regsvr32.exe は、コマンド ラインでモジュールを指定することなく呼び出されました。
コマンド OleInitialize の実行に失敗しました。コンピューターのメモリが不足している可能性があります。開いているプログラムを閉じてから、もう一度やり直してください。Regsvr32 は、必要な COM ライブラリ関数を呼び出す前に COM ライブラリを初期化し、シャットダウン時にライブラリを初期化解除する必要があります。これらのエラー メッセージが発生するのは、COM ライブラリの初期化または初期化解除の試行が失敗した場合です。
モジュール ""%1"" の読み込みに失敗しました。\n\nバイナリが指定されたパスに格納されていることを確認するか、バイナリまたは依存 .DLL ファイルに問題がないかどうかを調べてください。\n\n%2。コマンド ラインで指定されていたモジュールの読み込みでエラーが発生しました。エラー テキストは、メッセージの一部として表示されます。
モジュール ""%1"" は読み込まれましたが、%2 エントリ ポイントが見つかりませんでした。\n\n""%1"" が有効な DLL ファイルまたは OCX ファイルであることを確認し、もう一度やり直してくださいRegsvr32.exe は、コマンド ラインで指定されているモジュールの必要なエントリ ポイントを見つけることができませんでした。これは、エントリ ポイントがモジュールから適切にエクスポートされなかったか、モジュールが .DLL または .OCX ファイルではない場合に発生します。
モジュール ""%1"" は読み込まれましたが、%2 への呼び出しはエラー コード %3 により失敗しました。\n\nこの問題の詳細については、エラー コードを検索語として入力してオンラインで検索してください。Regsvr32.exe が、コマンド ラインで指定されているモジュールのエントリ ポイントを呼び出す際にエラーが発生しました。エラー コードは、メッセージの一部として表示されます。
モジュール ""%1"" は、実行している Windows のバージョンとの互換性がない可能性があります。モジュールが x86 (32 ビット) バージョンまたは x64 (64 ビット) バージョンの regsvr32.exe と互換性があることを確認してください。このエラーは、たとえば、Regsvr32.exe が x86 コンピューター上で実行され、コマンド ラインで指定されているモジュールが 64 ビット モジュールである場合に発生する可能性があります。

Windows XP での Regsvr32.exe エラー メッセージ

下の表には、RegSvr32 のエラー メッセージと考えられる原因が記載されています。
エラー メッセージ原因
フラグを認識できません: /invalid_flagフラグまたはスイッチの無効な組み合わせが入力されました。
DLL 名が指定されていません。.dll ファイル名を指定していません。
Dll_Name は読み込まれましたが、DllRegisterServer または DllUnregisterServer エントリ ポイントが見つかりませんでした。指定されている DLL 名は .dll ファイルや .ocx ファイルではありません。たとえば、「regsvr32 wjview.exe」と入力すると、このエラー メッセージが表示されます。
Dll_Name は実行可能ファイルではないか、またはこのファイルのヘルパーが登録されていない可能性があります。指定されている DLL 名は実行可能ファイル (.exe、.dll、または .ocx) ではありません。たとえば、「regsvr32 autoexec.bat」と入力すると、このエラー メッセージが表示されます。
Dll_Name は自己登録可能でないか、破損したバージョンがメモリ内に存在しています。たとえば、「regsvr32 icwdial.dll」と入力するとこのエラー メッセージが返されますが、これは Icwdial.dll ファイルが自己登録可能ではないためです。破損したバージョンの Dllname がメモリ内に存在すると考えられる場合は、コンピューターを再起動するか、ファイルのオリジナル バージョンを再度抽出してみてください。
OleInitialize に失敗しました (または OleUninitialize は失敗しました)。Regsvr32 は、必要な COM ライブラリ関数を呼び出す前に COM ライブラリを初期化し、シャットダウン時にライブラリを初期化解除する必要があります。これらのエラー メッセージが発生するのは、COM ライブラリの初期化または初期化解除の試行が失敗した場合です。たとえば、Ole32.dll ファイルが破損しているか、正しくないバージョンであることがあります。
LoadLibrary("Dll_Name") に失敗しました。GetlastError の戻り値: 0x00000485Winerror.h によると、0x00000485 = 1157 (ERROR_DLL_NOT_FOUND) は、"このアプリケーションを実行するのに必要なライブラリ ファイルのうち 1 つが見つかりませんでした。" という意味です。たとえば、「regsvr32 missing.dll」と入力した場合、Missing.dll ファイルが見つからないときに、このエラー メッセージが返されます。
LoadLibrary("Dll_Name") に失敗しました。GetLastError の戻り値: 0x00000002Winerror.h によると、0x00000002 = 2 (ERROR_FILE_NOT_FOUND) は、"指定されたファイルが見つかりません。" という意味です。つまり、依存する DLL が見つからなかったことを示します。たとえば、「regsvr32 icwdial.dll」と入力した場合、Tapi32.dll (依存 DLL) がないときに、このエラー メッセージが返されます。
LoadLibrary("dskmaint.dll") に失敗しました。GetLastError の戻り値: 0x000001fWinerror.h によると、0x000001f = 31 (ERROR_GEN_FAILURE) は、"システムに接続されているデバイスが機能していません。" という意味です。この動作は、Win16.dll ファイルを登録しようとした場合に発生することがあります。たとえば、「regsvr32 dskmaint.dll」と入力すると、このエラー メッセージが返されます。
Dll _Name の DllRegisterServer (または DllUnregisterServer) は失敗しました。リターン コード:stringWinerror.h ファイルを検索して、メッセージで指定されている string を探します。
regsrv32
プロパティ

文書番号:249873 - 最終更新日: 03/26/2014 20:39:00 - リビジョン: 15.0

Windows Vista Enterprise, Windows Vista Business, Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Ultimate, Microsoft Windows XP Home Edition, Microsoft Windows XP Media Center Edition 2005 Update Rollup 2, Microsoft Windows XP Professional, Microsoft Windows XP Tablet PC Edition, Windows 7 Enterprise, Windows 7 Home Basic, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Ultimate, Windows 8, Windows 8 Enterprise, Windows 8 Pro, Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro

  • kbresolve kbenv kberrmsg kbinfo kbkern32dll KB249873
フィードバック