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


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

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


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

Да, обновил пост с этой информацией @YetAnotherRandomUser
roger21

Ответы:


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

Вау, это действительно сработало для меня. Очень странно, что я испытываю эту проблему только на одном сетевом ресурсе, но эй, если это работает, это работает. Спасибо!
roger21

-1

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

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


1
Спасибо за ответ, хочу уточнить некоторые вещи. Когда вы говорите, что мне нужен «список доступа к каталогу на y», если я вижу содержимое каталога \ x в проводнике Windows, значит ли это, что у меня есть такой доступ? Во-вторых, если я могу создать файл вручную и записать его вручную, это не значит, что у меня есть доступ к объекту, к которому я обращаюсь?
roger21
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.