web-dev-qa-db-ja.com

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

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

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

1- Windowsエクスプローラーをrootfolderに開き、a.exeをsomeotherfolderにドラッグアンドドロップすると、someotherfolder内のa.exeが正しく上書きされます。

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

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

インデックスサービスをオフにしてみました。UACを無効にし、アンチウイルスを無効にしました。ドメインでWindows7 64ビットを実行しています。ユーザーは私のマシンの管理者です。このファイルの権限を見ると、ユーザーがファイルを完全に制御していることがわかります。私はこれを解決するために何をすべきかについて少し無知です。

7
Benoittr

奇妙に聞こえるかもしれませんが(私は本当に理解していません)、これで説明されている手順に従ってください ブログ投稿 すべてを修正しました。

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

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

4
Benoittr

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

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


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

0
Breakthrough

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

私の推測では、サードパーティのプログラムです。システムにインストールされているコピー/ドラッグアンドドロップハンドラーはありますか?

0
surfasb