Windows エクスプローラーは実行可能ファイルのハンドルを開いたままにします

Windows エクスプローラーは実行可能ファイルのハンドルを開いたままにします

Windows エクスプローラーから .exe を上書きする際に問題が発生します (ドラッグ/ドロップまたはコピー/貼り付け)。次のエラー メッセージが表示されます: 「フォルダーまたはその中のファイルが別のプログラムで開かれているため、アクションを完了できません」。Sysinternal ツールを使用して、そのファイルを誰が保持しているかを確認したところ、システム プロセスでした。

次のようなファイル構造があるとします。rootfolder\a.exe rootfolder\someotherfolder\a.exe

1- Windows エクスプローラーをルートフォルダーで開き、.exe を他のフォルダーにドラッグ アンド ドロップすると、他のフォルダー内の.exe が正しく上書きされます。

2- Windows エクスプローラーのインスタンスを 2 つ同時に開き、1 つはルート フォルダー内、もう 1 つは他のフォルダー内にあり、a.exe を他の a.exe にドラッグ アンド ドロップすると、エラー メッセージが表示されます。

ここで奇妙なのは、別のフォルダーを閉じて手順 1 を繰り返そうとすると、同じエラー メッセージが表示されて失敗するということです。フォルダーを閉じるまで、システムは数秒間ファイルのハンドルを保持します。

インデックス サービスをオフにし、UAC を無効にし、ウイルス対策を無効にしてみました。ドメインで Windows 7 64 ビットを実行しています。ユーザーはマシンの管理者です。上記のファイルの権限を確認すると、ユーザーが完全な制御権を持っていると表示されます。この問題を解決するにはどうすればいいのか、よくわかりません。

答え1

奇妙に聞こえるかもしれませんが(よく分かりませんが)、この ブログ投稿すべて修正しました。

基本的に、管理者コマンドプロンプトで次のように入力すると、すべてが魔法のように動作し始めました。

ネットユーザー管理者 /active:yes

答え2

ファイルをexeファイルにドラッグアンドドロップすると、エクスプローラーにexeファイルを起動するように指示することになります。ターゲット exeファイルを開いてドラッグされたexeファイル。これがデフォルトの動作です。これは、お使いのシステムでは当てはまりません。

サードパーティのプログラムだと思います。システムにコピー/ドラッグ アンド ドロップ ハンドラーはインストールされていますか?

答え3

プログラムを提供するロック解除者ショット。無料互換性ありすべてのバージョンのWindows2000から7まで、プロセスからファイルハンドルを「ロック解除」することができますそれなし終了する(もちろん、後者のオプションも提供されます)。

これは、これを実行できる (プロセスを終了したりコンピューターを再起動したりせずにファイル ハンドルをロック解除する) ユーティリティとして、これまでに見つけた唯一のものです。


実際になぜこのようなことが起きるのかというと、Windows がアプリケーション アイコンをキャッシュしようとしているか、外部プロセス (ウイルス対策など) がファイルをスキャンしている可能性があります。Unlocker はどのプロセスがファイルをロックしているかを知らせてくれるので、なぜこのようなことが起きているのかがわかるはずです。

関連情報