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