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

572
roger21

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

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

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

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

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

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

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

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

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

1
Можете ли вы поделиться всеми или, по крайней мере, важной частью вашего BAT-файла? YetAnotherRandomUser 5 лет назад 0

2 ответа на вопрос

2
Berend

Я не уверен, почему это происходит, но я подозреваю, что 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 
Вау, это действительно сработало для меня. Очень странно, что я испытываю эту проблему только на одном сетевом ресурсе, но эй, если это работает, это работает. Спасибо! roger21 5 лет назад 0
-1
dave

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

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

Спасибо за ответ, хочу уточнить некоторые вещи. Когда вы говорите, что мне нужен «список доступа к каталогу на y», если я вижу содержимое каталога \ x в проводнике Windows, значит ли это, что у меня есть такой доступ? Во-вторых, если я могу создать файл вручную и записать его вручную, это не значит, что у меня есть доступ к объекту, к которому я обращаюсь? roger21 5 лет назад 1