修正:プロセスは別のプロセスによって使用されているため、ファイルにアクセスできません

複数のWindowsユーザーが「 プロセスは別のプロセスで使用されているため、ファイルにアクセスできません」エラーが発生しています。 ほとんどの場合、ユーザーがnetshコマンドを実行しようとすると問題が発生します。 一部のユーザーは、IIS(インターネットインフォメーションサービス)MMC(Microsoft管理コンソール)スナップインでWebサイトを右クリックしようとすると、エラーメッセージが表示されると報告しています。

別のプロセスで使用されているため、プロセスはファイルにアクセスできません

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

プロセスが別のプロセスによって使用される原因は何ですか?

この特定の問題を調査するために、さまざまなユーザーレポートと、問題を解決するために使用した修復戦略を調べました。 収集できたことに基づいて、この特定のエラーメッセージをトリガーする一般的なシナリオがいくつかあります。

  • このコマンドには管理者特権が必要です–ターミナル内でエラーが発生した場合、変更を行うための管理者特権がないためである可能性が高いです。 同様の状況にある複数のユーザーは、管理者権限を付与することで問題を解決できました。
  • 別のプロセスは、ポート80またはポート443を使用しています -これは、IIS(インターネットインフォメーションサービス)を実行しているコンピューターで一般的です。 別のプロセスがこれら2つのポートを使用している場合、このエラーメッセージが表示されます。
  • ListenOnlyListレジストリサブキーが正しく構成されていない-IIS (インターネットインフォメーションサービス)でこの特定のエラーを引き起こす別の一般的なシナリオは、ListenOnlyListレジストリサブキーが正しく構成されていないことです。

現在、この特定のエラーメッセージの解決に苦労している場合、この記事では検証済みのトラブルシューティング手順のコレクションを提供します。 以下に、同様の状況の他のユーザーが問題を解決するために使用したメソッドのコレクションがあります。

最良の結果を得るには、特定のシナリオでエラーを解決するのに効果的な修正が見つかるまで、以下の方法を順番に実行してください。

さぁ、始めよう!

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

netshコマンドを実行しようとしたときにこのエラーが発生した場合は、管理者権限がないためにエラーが発生している可能性があります。 これは、ユーザーがネイティブWindowsアプリまたはサードパーティアプリケーションの動的ポート範囲に除外を追加するコマンドを実行しようとしたときに頻繁に発生することが報告されています。

この種の操作には管理者権限が必要になることに注意してください。 アクションを実行しようとしているCMDウィンドウに管理者権限があることを確認するには、以下の手順に従います。

  1. Windowsキー+ Rを押して、[実行]ダイアログボックスを開きます。 次に、「 cmd 」と入力し、 Ctrl + Shift + Enterを押して、昇格したコマンドプロンプトを開きます。

    管理者特権でコマンドプロンプトウィンドウを開く
  2. UAC(ユーザーアカウント制御)のプロンプトが表示されたら、[ はい ]をクリックして管理者権限を付与します。
  3. 管理者特権のコマンドプロンプトでコマンドを再度実行し、同じエラーメッセージが引き続き表示されるかどうかを確認します。

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

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

netshを使用して競合DNS競合を解決しようとしていて、上記の方法が役に立たなかった場合は、別のアプローチを試してください。

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

以下に、影響を受ける1人のユーザーが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の公式ドキュメントに基づき、次の条件のいずれかが現在の状況に該当する場合、エラーメッセージが表示されます。

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

この問題を解決するには、上記で指定したポートを別のプロセスが使用しているかどうかを判断するために、 Netstat.exeユーティリティを展開する必要があります。 ポートが使用されていないとユーティリティが判断した場合は、ListenOnlyListサブキーを調べて、正しく構成されているかどうかを確認します。

全体をステップごとに説明したガイドを次に示します。

  1. Windowsキー+ Rを押して、[実行]ダイアログボックスを開きます。 次に、「 cmd 」と入力し、 Ctrl + Shift + Enterを押して、昇格したコマンドプロンプトを開きます。 UAC(ユーザーアカウント制御)のプロンプトが表示されたら、[ はい ]をクリックして管理者権限を付与します。

    管理者特権でコマンドプロンプトウィンドウを開く
  2. 管理者特権のコマンドプロンプト内で、次のコマンドを実行してNetstat.exeユーティリティを起動します。
     netstat -ano 
  3. 戻ってきたら、 アクティブな接続のリストをスクロールして、ポート50と443が別のプロセスでアクティブに使用されているかどうかを確認します。

    ポートが別のプロセスで使用されているかどうかを確認する

    注:ポートが別のプロセスでアクティブに使用されている場合、問題の原因を特定できただけです。 この場合、ポートのPIDに従ってポートの競合を解決する方法に関する特定の手順をオンラインで確認してください。

  4. 次の手順では管理者権限が必要ないため、昇格したコマンドプロンプトを閉じます。
  5. ポートがアクティブに使用されていない場合は、 Windowsキー+ Rを押して[実行]ダイアログボックスを開きます。 次に、「 regedit 」と入力してEnterキーを押し、 レジストリエディターを開きます。 UAC(ユーザーアカウント制御)のプロンプトが表示されたら、[ はい ]をクリックして管理者権限を付与します。

    レジストリエディターユーティリティを開く
  6. レジストリエディター内で、左ペインを使用して次の場所に移動します。
     HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters \ ListenOnlyList 

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

  7. 先に進み、 ListenOnlyListサブキーを変更する前に、IISを実行しているHTTPサービスを停止する必要があります。 すぐに戻るため、レジストリエディタをバックグラウンドに配置します。
  8. 次に、 Windowsキー+ Rを押して[ ファイル名を指定して実行]ダイアログボックスを開き、「 cmd 」と入力してEnterキーを押し、別のコマンドプロンプトウィンドウを開きます。

    実行ダイアログ:cmd
  9. Cmdプロンプトで、次のコマンドを実行し、 Enterキーを押して、IISの実行を担当するHTTPサービスを停止します。
     ネットストップhttp 
  10. この操作を続行するかどうかを尋ねられたら、「Y」と入力し、Enterを押して操作を確認します。

    HTTPサービスを無効にする
  11. HTTPサービスが無効になったら、コマンドプロンプトウィンドウを閉じて、レジストリエディターに戻ります。
  12. ListenOnlyListサブキーを選択した状態で、右側のペインに移動し、有効なIPアドレスが含まれていることを確認します。 無効なIPアドレスを見つけた場合は、それを削除するか変更して、有効なIPアドレスを持つエントリを反映させます。

    無効なIPを持つバイナリ値を削除する

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

  13. レジストリエディターを閉じて、コンピューターを再起動します。
  14. 次回の起動時に、HTTPサービスが自動的に開始されます。 ただし、念のため、 Windowsキー+ Rを押して、別の[実行]ダイアログボックスを開きます。 次に、「 cmd 」と入力してEnterキーを押し、コマンドプロンプトウィンドウを開きます。

    通常のコマンドプロンプトウィンドウを開く
  15. 新しく開いたコマンドプロンプトで、次のコマンドを入力して、HTTPサービスが開始されていることを確認します。
     ネットスタートhttp 

    注: 「要求されたサービスは既に開始されています」というメッセージが返された場合は、準備ができています。

  16. Microsoftインターネットインフォメーションサービス(IIS)Microsoft管理コンソール(MMC)スナップインからサービスを開始します。 「プロセスは別のプロセスで使用されているため、ファイルにアクセスできません」というエラーは発生しません

興味深い記事