Можно удалить файл через проводник Windows, но не через пакетный файл

Можно удалить файл через проводник Windows, но не через пакетный файл

При попытке удалить файл из сетевого расположения через пакетный файл Windows (у меня Windows 7) с помощью команды "del" с флагами /f и /q я вижу сообщение "Доступ запрещен", и файл не удаляется. Однако я могу успешно удалить файл вручную через проводник Windows.

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

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

Эта проблема присутствует только в одном конкретном сетевом ресурсе, во всех других местах я могу удалять файлы с помощью пакетных файлов Windows без каких-либо проблем.

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

Моя учетная запись находится в группе, которая не имеет доступа к общему ресурсу, содержащему указанную папку, но имеет доступ к папке на общем ресурсе. Способ настройки безопасности для этого сетевого расположения следующий:

\\Server\Share\Folder1
\\Server\Share\Folder2

Группа, в которой находится моя учетная запись, имеет право «изменить» папки Folder1 и Folder2, но не имеет права «Поделиться».

Редактировать: Соответствующая командная строка, как и было запрошено:

del \\Server\Share\Folder\TEST_FILE.txt /F /Q

Кто-нибудь знает какие-либо сетевые/безопасные явления, которые могут быть причиной этой проблемы, и как их исправить?

решение1

Я не уверен, почему это происходит, но подозреваю, что delкоманда не поддерживает имена путей UNC должным образом.

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

del \\share\folder\file.txt
:: got an error 'Access denied'

net use Z: \\share\folder
del Z:\file.txt
:: file deleted successfully

Как ни странно, другие команды работали. Например, я мог создать подкаталог, переместить туда файл, а затем удалить подкаталог:

mkdir \\share\folder\trash
move \\share\folder\file.txt \\share\folder\trash
rmdir /s /q \\share\folder\trash

решение2

Команда «del \y\x» выполняет поиск в «y» всех файлов, соответствующих «x», поэтому вам потребуется доступ к списку каталогов в «y».

Что касается сетевых ресурсов, то доступ, который вы получаете, представляет собой пересечение разрешений на ресурс и на объект, к которому вы обращаетесь. Если файл разрешает вам запись, а ресурс — нет, то вы не можете ее выполнить.

Связанный контент