Windows 10を利用していて、ファイルやフォルダーを削除や移動しようとしたとき、使用中のため削除や移動ができないとエラーが表示されることがあります。
このような場合、自分が開いているアプリやフォルダー、ファイルが原因であれば、それらを閉じることで操作できるようになりますが、そうでない場合は、どのアプリやユーザーがファイルやフォルダーを開いているか、ぱっと見では判断できません。
そのようなときは、openfilesコマンドを利用することで、削除や移動ができないファイルやフォルダーが、どのアプリ(プロセス)やユーザーによって使用されているかを調査することができます。
そこでここでは、Windows 10でのopenfilesコマンドの使い方を紹介します。
目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Windows 10 Pro 64bit | 2004 |
事前準備
「openfiles」コマンドを利用するには、事前準備が必要です。
まず、管理者権限でコマンドプロンプトを起動してopenfilesコマンドを実行すると、次のようなメッセージが表示されます。
表示されているメッセージにあるように、openfilesコマンドを利用して開いているファイルやフォルダーの情報を取得するには、システムグローバルフラグ「maintain objects list」をオンにする必要があります。
「maintain objects list」をオンにするには「openfiles /local on」と実行し、表示されるメッセージに従ってWindows 10を再起動します。
これで、openfilesコマンドを使って、開いているファイルやフォルダーの情報を取得できるようになります。
なお「maintain objects list」をオンにすると、システムのパフォーマンスが低下する可能性があるので、パフォーマンスへの影響を抑えたい場合は、必要なときだけオンにして、必要がなくなったら「openfiles /local off」と実行し「maintain objects list」をオフにしておきましょう。
開いているファイルを確認する
上の事前準備ができたら、改めて管理者権限でコマンドプロンプトを起動して、openfilesコマンドを実行すると、現在ローカルマシン上で開いているファイルやフォルダーの一覧と、リモートから開かれているファイルやフォルダーの一覧が表示されます。
一覧には、ファイルやフォルダーを識別するための番号、ファイルやフォルダーを開いているプロセス名、開いているファイルやフォルダーのパスが表示されているので、どのプロセスがどのファイルやフォルダーを開いているかを確認できます。
なお「開いているファイル」欄の表示は、一部が「..」と表示され省略されていますが、省略せずに表示したい場合は「openfiles /query /v」と実行すれば、省略せずに表示できます。
開いているファイルを強制的に閉じる
openfilesコマンドでは、開いているファイルやフォルダーを強制的に閉じることもでき、その際は「openfiles /disconnect」を実行します。
下の例では識別番号「ID」が「64」のファイルを強制的に閉じています。
上の例では、識別番号で閉じていますが、それ以外にもユーザー名やファイル名などを指定して閉じることもできるので、詳しくはコマンドのヘルプ(「openfiles /disconnect /?」と実行すると表示されます。)を参照してみてください。
あとがき
openfilesコマンドでは、ローカルマシンの開かれているファイルやフォルダーを確認するだけでなく、リモートマシンの共有リソースの使用状況も確認できます。
ご活用あれ。