Windowsエラー
 Computer >> コンピューター >  >> トラブルシューティング >> Windowsエラー

【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法

Windowsユーザーの一部から、「別のプロセスが使用中のため、プロセスはファイルにアクセスできません(The process cannot access the file because it is being used by another process)」というエラーメッセージが表示されるという報告が寄せられています。多くの場合、この問題はnetshコマンドを実行しようとした際に発生します。また、一部のユーザーからは、IIS(Internet Information Services)のMMC(Microsoft Management Console)スナップインでWebサイトを右クリックした際にこのエラーが表示されるとの報告もあります。

【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法

この問題は、Windows Vista、Windows 7、Windows 8.1、Windows 10、および各種Windows Serverのバージョンで発生することが確認されています。

「別のプロセスが使用中のためアクセスできない」エラーの主な原因

私たちはこの問題について、多数のユーザー報告と、実際に問題を解決するために用いられた修復手順を調査しました。その結果、このエラーメッセージを引き起こす一般的なシナリオとして、以下の3つが判明しています。

  • コマンドに管理者権限が必要である - ターミナル上でエラーが発生している場合、最も可能性が高いのは、変更を加えるための管理者権限を持っていないことです。同様の状況にあった多くのユーザーは、管理者権限を付与することで問題を解決できています。
  • ポート80またはポート443が別のプロセスによって使用されている - これは、IIS(Internet Information Services)が稼働しているコンピューターでよく見られるケースです。これらのポートが他のプロセスに占有されていると、このエラーメッセージが表示されます。
  • ListenOnlyListレジストリサブキーが正しく構成されていない - IIS環境でこのエラーを引き起こすもう一つの典型的な原因が、ListenOnlyListレジストリサブキーの設定不備です。

このエラーメッセージの解決にお困りの方は、この記事で検証済みのトラブルシューティング手順をご紹介します。以下に挙げるのは、同じ状況に直面した他のユーザーが実際に問題を解決するために使用した方法です。

最良の結果を得るためには、ご自身の状況に合った有効な修正方法が見つかるまで、以下の方法を順番に試してみてください。

それでは始めましょう!

方法1:管理者権限でコマンドを実行する

netshコマンドの実行時にこのエラーが表示される場合、その原因は管理者権限がないことにある可能性が高いです。特に、Windowsネイティブアプリやサードパーティ製アプリケーションの動的ポート範囲に除外設定を追加するコマンドを実行する際に、このエラーが頻繁に報告されています。

この種の操作には管理者権限が必要となる点に注意してください。実行しようとしているコマンドプロンプトウィンドウが管理者権限を持っているかどうかを確認・確保するには、以下の手順に従ってください。

  1. Windowsキー + Rを押して「ファイル名を指定して実行」ダイアログボックスを開きます。次に「cmd」と入力し、Ctrl + Shift + Enterを押して昇格されたコマンドプロンプトを開きます。【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法
  2. UAC(ユーザーアカウント制御)のダイアログが表示されたら、「はい」をクリックして管理者権限を付与します。
  3. 昇格されたコマンドプロンプトで、再度同じコマンドを実行し、同じエラーメッセージがまだ表示されるかどうかを確認します。

それでも「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」というエラーが表示される場合や、このシナリオが当てはまらない場合は、次の方法に進んでください。

方法2:別のIP範囲を設定する

netshを使用してDNSの競合を解決しようとしていて、上記の方法で改善しなかった場合は、別のアプローチを試してみるとよいでしょう。

同じエラーメッセージの解決に苦労していた複数のユーザーは、除外範囲を作成する代わりに、まったく異なるIP範囲を設定することで競合が解消されたことを発見しています。

以下は、ある影響を受けたユーザーが、DNSとQuickBooks間の競合を解決するために実際に実行して成功したコマンドです。

netsh int ipv4 set dynamicport tcp start=10000 num=1000
netsh int ipv4 set dynamicport udp start=10000 num=1000

注意: コマンドを実行するターミナルが管理者権限を持っていることを必ず確認してください。

この方法で競合が解決しない場合や、ご自身の状況に当てはまらない場合は、最後の方法に進んでください。

方法3:IISのポート競合を解決する

IIS MMCスナップイン内でWebサイト項目を右クリックした際にこの問題が発生している場合(「開始」をクリックしても何も起きない場合)は、Netstat.exeユーティリティを使用して、ポート80とポート443が別のプロセスによって使用されていないかを確認する必要があります。

この問題は、Microsoft IIS 6.0および7.0が稼働しているコンピューターでかなりよく見られます。Microsoftの公式ドキュメントによると、以下のいずれかの条件に該当する場合にこのエラーメッセージが表示されます。

  • IISが稼働しているコンピューター上で、ListenOnlyListレジストリサブキーが正しく構成されていない。
  • 別のプロセスが、IISに必要なTCPポート(80)またはSSLポート(443)を使用している。

この問題を解決するには、Netstat.exeユーティリティを使用して、上記のポートが別のプロセスによって使用されているかどうかを確認します。ユーティリティの結果、ポートが使用されていないことが判明した場合は、ListenOnlyListサブキーが正しく構成されているかどうかを調べます。

以下に、全体の手順をステップバイステップで説明します。

  1. Windowsキー + Rを押して「ファイル名を指定して実行」ダイアログボックスを開きます。「cmd」と入力し、Ctrl + Shift + Enterを押して昇格されたコマンドプロンプトを開きます。UAC(ユーザーアカウント制御)のダイアログが表示されたら、「はい」をクリックして管理者権限を付与します。【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法
  2. 昇格されたコマンドプロンプトで、以下のコマンドを実行してNetstat.exeユーティリティを起動します。
    netstat -ano
  3. 結果が返されたら、アクティブな接続の一覧をスクロールし、ポート80および443が別のプロセスによって使用されていないかを確認します。【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法

    注意: ポートが別のプロセスによって使用されている場合は、問題の原因を特定できたことになります。この場合は、該当ポートのPIDをもとに、ポート競合を解決するための具体的な手順をインターネットで検索してください。

  4. 次の手順では管理者権限が不要になるため、昇格されたコマンドプロンプトを閉じます。
  5. ポートが使用されていなかった場合は、Windowsキー + Rを押して「ファイル名を指定して実行」ダイアログボックスを開きます。「regedit」と入力してEnterを押し、レジストリエディターを開きます。UAC(ユーザーアカウント制御)のダイアログが表示されたら、「はい」をクリックして管理者権限を付与します。【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法
  6. レジストリエディターの左側ペインを使用して、以下の場所に移動します。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList

    注意: ListenOnlyListサブキーが存在しない場合、新しく作成する必要はありません。その場合、デフォルトでIPアドレス0.0.0.0が使用されます。

  7. ListenOnlyListサブキーを変更する前に、IISを動かしているHTTPサービスを停止する必要があります。レジストリエディターは後で再び使用するため、バックグラウンドに置いたままにしておいてください。
  8. 次に、Windowsキー + Rを押して「ファイル名を指定して実行」ダイアログボックスを開き、「cmd」と入力してEnterを押し、新しいコマンドプロンプトウィンドウを開きます。【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法
  9. コマンドプロンプトで、以下のコマンドを実行してEnterを押し、IISを動かしているHTTPサービスを停止します。
    net stop http
  10. 操作の続行を確認するメッセージが表示されたら、「Y」と入力してEnterを押し、操作を確定します。【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法
  11. HTTPサービスが無効化されたら、コマンドプロンプトウィンドウを閉じて、レジストリエディターに戻ります。
  12. ListenOnlyListサブキーを選択した状態で、右側のペインに移動し、有効なIPアドレスのみが含まれていることを確認します。無効なIPアドレスを見つけた場合は、削除するか、有効なIPアドレスのエントリに修正してください。【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法

    注意: ListenOnlyListサブキーが存在しており、0.0.0.0のアドレスが登録されている場合は、その他のIPアドレスをすべて削除する必要があります。

  13. レジストリエディターを閉じ、コンピューターを再起動します。
  14. 次回の起動時にHTTPサービスは自動的に開始されるはずですが、念のため確認しましょう。Windowsキー + Rを押して「ファイル名を指定して実行」ダイアログボックスを開き、「cmd」と入力してEnterを押し、コマンドプロンプトウィンドウを開きます。【Windows】「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーの原因と対処法
  15. 新しく開いたコマンドプロンプトで、以下のコマンドを入力して、HTTPサービスが開始されていることを確認します。
    net start http

    注意: 「要求されたサービスは既に開始されています」というメッセージが返ってきた場合は、問題ありません。

  16. Microsoft Internet Information Services(IIS)のMicrosoft Management Console(MMC)スナップインからサービスの開始を試みます。「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」というエラーはもう発生しなくなっているはずです。
  1. Windows 10で「別のプロセスが使用中のため、プロセスはファイルにアクセスできません」エラーを修正する方法

    お気に入りのアプリを使おうとしたら、「別のプロセスが使用中のため、プロセスはファイルにアクセスできません(The process cannot access the file because it is being used by another process)」というエラーメッセージが表示された経験はありませんか?多くの方はまずエラーメッセージを閉じて対処しようとしますが、残念ながらこの方法では問題は解決しません。本記事では、Windows 10 PCでこのエラーを解消するための具体的な方法を詳しく解説します。 Windows 10で「プロセスはファイルにアクセスできません」エラーを修正

  2. 【Windows 10】BitTorrentの「プロセスはファイルにアクセスできません」エラーを解決する8つの方法

    BitTorrentは、世界で最も人気のあるP2P(ピアツーピア)ファイル共有ツールの一つです。2001年に登場して以来、多くのユーザーに利用されてきました。しかし最近、「プロセスはファイルにアクセスできません」というエラーが表示され、ファイルをダウンロードできないという報告が増えています。このエラーが発生すると、ダウンロードが中断されたり、完了できなかったりするため、非常に困りものです。 この記事では、BitTorrentで「プロセスはファイルにアクセスできません」エラーが発生する主な原因と、Windows 10での具体的な解決策を8つの方法に分けて詳しく解説します。 BitTorrent