Можно ли настроить Windows на автоматическое закрытие блокировки чтения общего файла, когда пользователь с полными разрешениями удаляет его через общий ресурс? Я знаю, что есть способы сделать это вручную, но я хочу, чтобы это происходило автоматически.
Чтобы добавить больше деталей, у меня есть хост-компьютер под управлением Windows Server 2012 R2. На хосте установлена виртуальная машина Windows 10 в Hyper-V. Хост также совместно использует папку с разрешениями, так что "Все" имеют доступ на чтение и выполнение, а один пользователь на ВМ имеет полный доступ. Когда я подключаюсь к общему ресурсу со второго компьютера (как пользователь "Все"), я могу получить доступ к файлам (только для чтения), как и ожидалось, открыть их в оболочке, блокноте и т.д. Но если, хотя у меня открыты файлы, я пытаюсь удалить их из общего ресурса с помощью пользователя виртуальной машины, система зависает, поскольку файл заблокирован от чтения. Однако, если я удаляю их с хост-сервера, блокировки чтения обычно (но не всегда) удаляются принудительно. Есть ли способ получить такое поведение последовательно при удалении их на хосте или через пользователя виртуальной машины, например, флаг общего ресурса write-access-overrides-read-locks?
Редактировать:
Чего я действительно хочу, так это того, чтобы можно было как с хост-сервера, так и с виртуальной машины через оболочку и командную строку переименовывать и удалять файлы, и операция всегда была успешной, даже если другие пользователи открывали файлы для чтения через доля.
Edit2:
Чтобы уточнить, что я имею в виду под автоматическим, мне нужно игнорировать блокировки чтения даже при использовании стандартных команд (например, rmdir
, erase
и т.д.), А также интерфейса оболочки и, в идеале, даже Win32 API (хотя последний не является требуется). Использование сценария или другой пользовательской команды, даже если она использует тот же синтаксис, не будет работать, если только нет способа подключить стандартные команды для использования пользовательских. Причина в том, что я запускаю сторонние пакетные файлы и исполняемые файлы, которые изменяют общие файлы, и эти сценарии и программы завершаются ошибкой, если они не могут изменить целевые файлы. Модификация сторонних файлов для использования пользовательских команд взлома не является опцией.
Я знаю, что в качестве альтернативы всему этому я мог бы запускать сторонние программы с использованием внутреннего промежуточного каталога, а затем перемещать фрагменты их выходных данных по мере их завершения, но моя цель - сделать вывод доступным на общем ресурсе постепенно, а не только после того, как каждая часть закончена.