![Pode excluir um arquivo através do Windows Explorer, mas não através de arquivo em lote](https://rvso.com/image/1575986/Pode%20excluir%20um%20arquivo%20atrav%C3%A9s%20do%20Windows%20Explorer%2C%20mas%20n%C3%A3o%20atrav%C3%A9s%20de%20arquivo%20em%20lote.png)
Ao tentar excluir um arquivo de um local de rede por meio do arquivo em lote do Windows (estou no Windows 7) usando um comando "del" com sinalizadores /f e /q, vejo a mensagem "Acesso negado". mensagem e o arquivo não é excluído. No entanto, posso excluir o arquivo manualmente através do Windows Explorer.
Tenho executado o arquivo em lote com minha conta de usuário pessoal, que deve usar as mesmas permissões da exclusão manual por meio do Windows Explorer.
Não há nada de especial no arquivo que estou tentando excluir, é um arquivo de texto em branco que criei para teste depois que percebi que parte de nosso código de automação não conseguia excluir arquivos deste local.
Esse problema está presente apenas em um compartilhamento de rede específico; em todos os outros locais, posso excluir arquivos em lote do Windows sem problemas.
Além disso, posso criar com êxito um arquivo de texto no local de rede em questão sem problemas por meio de um arquivo em lote. É apenas o comando delete que me dá a mensagem "Acesso negado". emitir.
Minha conta está em um grupo que não tem acesso ao compartilhamento que contém a pasta em questão, mas tem acesso à pasta no compartilhamento. A forma como a segurança é configurada para este local de rede é a seguinte:
\\Server\Share\Folder1
\\Server\Share\Folder2
Onde o grupo em que minha conta está tem acesso para "modificar" a Pasta1 e a Pasta2, mas não ao Compartilhar.
Editar: A linha de comando em questão, conforme solicitado:
del \\Server\Share\Folder\TEST_FILE.txt /F /Q
Alguém conhece algum fenômeno de rede/segurança que possa estar causando esse problema e como posso corrigi-lo?
Responder1
Não sei por que isso está acontecendo, mas suspeito que o del
comando não suporta nomes de caminho UNC corretamente.
Eu poderia reproduzir isso facilmente e o erro desapareceu quando usei uma unidade mapeada:
del \\share\folder\file.txt
:: got an error 'Access denied'
net use Z: \\share\folder
del Z:\file.txt
:: file deleted successfully
Estranhamente, outros comandos funcionaram. Por exemplo, eu poderia criar um subdiretório, mover o arquivo para lá e excluir o subdiretório:
mkdir \\share\folder\trash
move \\share\folder\file.txt \\share\folder\trash
rmdir /s /q \\share\folder\trash
Responder2
O comando 'del \y\x' faz uma pesquisa em 'y' por todos os arquivos correspondentes a 'x', então você precisará de acesso ao diretório de lista em 'y'.
No que diz respeito aos compartilhamentos de rede, o acesso que você obtém é a interseção de permissões no compartilhamento e no objeto que você está acessando. Se um arquivo permitir a gravação, mas o compartilhamento não, você não poderá escrever.