Проводник Windows держит дескриптор открытым на исполняемых файлах

7

У меня проблема с перезаписью любого .exe из проводника Windows (перетаскивание / копирование или копирование). Я получаю сообщение об ошибке: «Действие не может быть завершено, потому что папка или файл в ней открыт в другой программе». Я использовал инструмент sysinternal, чтобы проверить, кто удерживает указанный файл, и это системный процесс.

Допустим, у меня есть следующая структура файла rootfolder \ a.exe rootfolder \ someotherfolder \ a.exe

1. Если я открываю Windows Explorer в корневой папке и перетаскиваю a.exe в другую папку, a.exe внутри другой папки корректно перезаписывается.

2- Если у меня одновременно открыты два экземпляра Windows Explorer, один внутри корневой папки, другой внутри someotherfolder, и я перетаскиваю a.exe поверх другого a.exe, я получаю сообщение об ошибке.

Теперь, что странно, если я хочу закрыть какую-то другую папку и попытаться повторить шаг 1, это не с тем же сообщением об ошибке. Система сохраняет дескриптор файла довольно долго, пока я не закрою папку.

Я попытался отключить службу индексирования, отключил UAC, отключил антивирус. Я использую Windows 7 64bit на домене, мой пользователь является администратором моей машины, когда я смотрю права указанного файла, он говорит, что мой пользователь имеет полный контроль над ним. Я немного не знаю, что делать, чтобы решить эту проблему.

Benoittr
источник

Ответы:

4

Как бы странно это ни звучало (я не очень понимаю), но после шагов, описанных в этом блоге, все исправлено.

В основном я набрал следующее в командной строке администратора, и все это начало работать волшебным образом:

сетевой пользователь администратор / активный: да

Benoittr
источник
0

Когда вы перетаскиваете, а затем перетаскиваете файл поверх exe-файла, вы говорите Проводнику запустить целевой exe- файл и открыть перетаскиваемый exe- файл. Это поведение по умолчанию. Что не так в вашей системе.

Я думаю, это сторонняя программа. Какие-либо обработчики копирования / перетаскивания установлены в вашей системе?

surfasb
источник
На самом деле я перетаскиваю фоновое пустое пространство, чтобы инициировать копирование / перезапись, а не непосредственно поверх исполняемого ICon. Также, насколько я знаю, у меня не установлено никаких обработчиков. + Я ожидаю, что этот обработчик будет отображаться как блокирующий файл, а не как системный процесс.
Benoittr
0

Дайте программе Unlocker шанс. Он не только бесплатен и совместим со всеми версиями Windows от 2000 до 7, но и позволяет «разблокировать» файловые дескрипторы процессов, не прерывая их (конечно, вам также предоставляется последний вариант).

Это единственная утилита, которую я нашел на сегодняшний день, которая позволяет вам делать это (разблокировать файловые дескрипторы без остановки процессов или перезагрузки компьютера).


Что касается того, почему это происходит на самом деле, это может быть Windows, пытающаяся кешировать значок приложения, или внешний процесс (например, антивирус), сканирующий файл. Unlocker сообщит вам, какой процесс заблокировал файл, поэтому он должен дать вам представление о том, почему это происходит.

Прорвать
источник
Я уже знаю, какой процесс его использует: это System Proess (PID: 4). Я уже выключил генерацию UAC / Indexing / Thumbnail и все еще безуспешно. Но как только я получу 16 повторений, я буду признателен вам за то, что вы указали мне на инструмент, который может разблокировать файл без прерывания процесса, что очень полезно.
Benoittr
1
technet.microsoft.com/en-us/magazine/… предполагает, что это может быть не очень хорошая идея
OJW
Это ужасная идея по той причине, что OJW связал ( архивная версия на всякий случай): вы можете вызвать серьезное повреждение данных, когда другая программа пытается повторно использовать дескриптор.
НХ.