ユーティリティ スポットライトPendMoves と MoveFile

Lance Whitney

Windows アプリケーションをインストールまたはアンインストールしたら、多くの場合、そのアプリケーションに関連付けられた特定のファイルを置換または削除する必要があります。しかし、このようなファイルがメモリにロックされており Windows をシャットダウンするまで削除できない場合があります。うまくいかないインストールに関する問題のトラブルシューティングを行っているにしろ、単に興味があるだけにしろ、このようなファイルの一覧を確認したいと思うことがあるかもしれません。マイクロソフトが無償で提供する PendMoves ツールが役に立ちます。このツールを使用すると、移動や削除が行われる前に、移動または削除される予定の全ファイルの名前を表示することができるのです。また、アプリケーションを完全に削除するため、または、PC をクリーンアップするために、ロックされたファイルを自分で移動または削除する必要があることもあるかもしれません。それには、MoveFile ツールがもってこいです。

PendMoves と MoveFile は Mark Russinovich が作成したツールで、Windows Sysinternals ライブラリの一部です。PendMoves と MoveFile をダウンロードするには、TechNet Magazine Web サイト (technetmagazine.com) の「コード ダウンロード」セクションにアクセスしてください。ダウンロードされた PendMoves.zip を展開すると、中には EULA.text、pendmoves.exe、movefile.exe という 3 つのファイルがあります。ほとんどの Windows Sysinternals ツールと同様、インストールは不要です。EXE ファイルからプログラムを起動すればよいだけです。

fig01.gif

PendMoves を使用すると、移動または削除される予定の全ファイルの一覧が表示される

PendMoves と MoveFile はどちらもコマンド ラインから動作するので、プロンプトを開く必要があります。プロンプトで、PendMoves.zip を展開したディレクトリに移動します。「pendmoves」と入力すると、コンソール ウィンドウが開き、このツールに関する基本情報 (名前、年、作成者など) が表示され、その下に、移動または削除される予定の全ファイルの一覧が続きます。スクリーンショットに示すように、ファイルごとに "Source" 行と "Target" 行があり、"Source" 行にはファイルのパス名が表示され、"Target" 行にはそのファイルに対する操作またはそのファイルの場所が表示されます (削除の場合は "DELETE" と表示され、移動や名前変更の場合はディレクトリ パスが表示されます)。プログラムがインストールまたはアンインストールされ、再起動が必要な場合は、通常、そのアプリケーションに属するファイルの名前が表示されます。

それでは、PendMoves のしくみについて説明しましょう。Windows は、MoveFileEx と呼ばれる API を使用します。これを使用すると、アプリケーションでは、そのアプリケーションのインストールの一環として移動または置換される必要があるファイルをキューに入れることができます。この情報は、HKLM\System\CurrentControlSet\Control\Session Manager\Pending FileRenameOperations レジストリ キーに格納されます。PendMoves では、このレジストリ値を読み取って表示します。

この記事で紹介する 2 つのツールのうち 2 つ目である MoveFile は、使用中のファイルを削除、移動、または名前変更する必要がある場合に役立ちます。MoveFile を実行するには、まず、移動または削除するファイルが格納されているディレクトリに movefile.exe をコピーします。コマンド プロンプトを開き、そのディレクトリに移動します。「movefile」と入力し、その後に、ファイルの名前、およびファイルの移動先とする場所を指定します。つまり、たとえば「movefile config.log c:\backups」と入力します。ファイルの名前を変更するには、新しい名前を指定します。つまり、たとえば「movefile config.log config.bak」と入力します。ファイルを削除するには、引用符 2 つを場所として入力します。つまり、たとえば「movefile config.log ""」と入力します。

MoveFile はワイルドカードに対応していません。したがって、いくつかのファイルを一度に移動するには、各ファイル用の別々のコマンド文字列が含まれるスクリプトを作成します。ディレクトリ全体に対して MoveFile を実行して、ディレクトリ全体を削除または名前変更することもできます。

PendMoves または MoveFile を定期的に使用する予定の場合は、任意のディレクトリから容易に実行できるように、Windows/System32 ディレクトリまたはパス上の他の場所にコピーします。PendMoves と MoveFile はどちらも、NT ベースのバージョンの Windows すべて (Windows XP、Windows Vista、Windows Server など) と互換性があります。

Lance Whitney は、IT コンサルタントであり、トレーナーであり、テクニカル ライターでもあります。Windows のワークステーションおよびサーバーをカスタマイズすることに数えきれないほどの時間を費やしてきました。元々はジャーナリストでしたが、15 年前、IT 業界への転向を実現しました。