1

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

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

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

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

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

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

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

Группа, в которой находится моя учетная запись, имеет "изменяющий" доступ к папкам 1 и 2, но не к папке "Общий доступ".

Редактировать: рассматриваемая командная строка в соответствии с запросом:

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

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

2 ответа2

2

Я не уверен, почему это происходит, но я подозреваю, что команда 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
-1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .