Эта проблема время от времени возникает на работе. Наша машина сборки может иметь доступ к файлам через обычный файловый ресурс Windows. Если кто-то удаленно просматривает папку на машине и оставляет окно открытым на ночь, сборка завершается ошибкой (как это произошло сейчас). Окно проводника оставило открытыми точками одну из подпапок в дереве исходных текстов. Сборка удаляет исходный код и выполняет чистую проверку перед сборкой. Удаление не удается.
Прямо сейчас я бы хотел, чтобы сборка заработала. Я вошел в систему из дома и не хотел бы перезагружать сборочную машину. Я не могу связаться с человеком, чья машина ищет, и с файлами, и я не могу удаленно перезагрузить его машину.
Когда общий ресурс Windows имеет блокировку, процесс блокировки - это система, поэтому я не думаю, что смогу убить его, как с обычными блокировками.
Кто-нибудь знает, как снять блокировку с общей папки без перезагрузки машины?





Нашел решение.
Найдите процесс, используя Обозреватель процессов:
Загрузите и установите Unlocker (Предупреждение: ссылка удалена, так как она содержит вредоносное ПО)
Разблокировать каталог
Теперь каталог должен быть разблокирован, и теперь его можно удалить.
Глупый вопрос, но: где мне запустить программу, если у меня такая же проблема, как у OP? Компьютер, использующий общий доступ к файлу, или компьютер, использующий его?
@SalmanA: запустите его на компьютере, на котором хранится файл (компьютер, предоставляющий доступ к файлу)
Предлагаю удалить ссылку на приложение Unlocker. Теперь он содержит шпионское ПО (см. Ниже).
Этот ответ действительно нужно удалить. Unlocker теперь является источником вредоносного ПО.
Намного лучший ответ Чарльза Бернса ниже, используйте "Process Hacker"
Если вы являетесь администратором сервера, передающего файл по сети, вы можете использовать встроенную функцию Windows:
Надеюсь это поможет.
Если вы закроете сеанс, он просто восстановится и, конечно же, не снимет блокировку. Вы хоть раз пробовали свое предложение?
Это зависит от ситуации. Это тоже сработало для меня. Зависшие сеансы, блокирующие мои файлы.
Попробуйте Process Hacker: https://wj32.org/processhacker/
Хакер процессов похож на Process Explorer на стероидах.
Чтобы найти нарушающий процесс, нажмите CTRL + F или нажмите кнопку «Найти дескрипторы библиотек DLL» и найдите имя файла.
Как только вы найдете файл в диалоговом окне поиска дескрипторов, вы можете просто щелкнуть его правой кнопкой мыши и выбрать «закрыть». (по крайней мере, для v2.39.124)
В более старых версиях в контекстном меню процесса была опция «терминатор».
Щелкните правой кнопкой мыши вызывающий нарушение процесс -> Miscellaneous -> Terminator -> Выберите методы прерывания. Обратите внимание, что некоторые из них могут быть опасными и могут иметь непредвиденные последствия.
Терминатора не было в версии 2.39.124. Я смог щелкнуть правой кнопкой мыши дескриптор файла и выбрать «закрыть»
У меня были аналогичные проблемы, и ни одно из этих предложений, которые я видел выше, не подходило для автоматизированных ночных сборок (как предполагалось в исходном плакате), потому что все они требуют ручных усилий, чтобы выследить и уничтожить замки.
Единственный метод, который я пробовал, который, кажется, работает надежно, - это удалить сам общий ресурс, выполнить сборку, а затем снова добавить общий ресурс. Вот один из способов автоматического удаления общего ресурса:
D: \ Projects> чистая доля Projects / DELETE / Y
У пользователей есть открытые файлы в проектах. Продолжение операции приведет к закрытию файлов.
Проекты успешно удалены.
(ПРИМЕЧАНИЕ: повторное автоматическое создание общего ресурса может быть проблемой, если группы привилегий, которые вам нужно предоставить, беспорядочные.)
Другой вариант - начиная с Windows Vista, использовать встроенный в систему инструмент Windows:
ресурсы монитора: perfmon.exe /res
Взято из: Http://www.sysadmit.com/2017/06/windows-how-to-know-that-process-has-open-a-file.html
Я пытаюсь понять эту команду. Разве это не просто перезапустить / открыть программу Performance Monitor в Windows? Я не понимаю, как он определит конкретный файл, который вы пытаетесь исправить.
Я делаю это, используя как OpenFiles.exe, так и Handle.exe Вы можете запускать их в любом порядке, и ваш ресурс будет полностью разблокирован.
OpenFiles: для отключения сеансов обмена файлами
Handle.exe: чтобы освободить все открытые дескрипторы (не пытайтесь закрыть дескрипторы, принадлежащие pid4, так как это системный процесс)
Вы можете автоматизировать это, используя PowerShell, пакетную обработку или любой язык по вашему выбору.
Вау. Неужели нет способа предотвратить это в Windows? Как ... Мягко говоря, неудивительно. По крайней мере, Samba может это сделать.