Erro de acesso negado com robocopy como administrador [duplicado]

1

Possível duplicado:
permissão de Robocopy negada

Ao tentar executar o seguinte comando

robocopy d:\directory \\server\directory /S /XO /COPY:DT

Eu recebo um erro de acesso negado. Estou executando o Vista Ultimate x64, com permissões de administrador, sou o proprietário dos dois diretórios.

Vi essa pergunta e achei que era semelhante, mas estou recebendo a seguinte mensagem de erro:

ERROR 5 (0x00000005)(Copying file d:\blah....)

Existe uma correção para isso? Caso contrário, existe uma maneira de pular os arquivos com erro e continuar com os próximos arquivos?

Steve Wright
fonte
uma das pastas é uma pasta de rede?
John T
Presumivelmente, o diretório \\ server \ é de rede (em resposta a John T). No entanto, talvez esse devesse ser o diretório \\ server \ SHARE_NAME \?
Chris_K
Três pontos: 1. Há algum arquivo no diretório em uso? (Verifique usando o Unlocker 1.8.7) 2. O UAC está ativado. Se sim, você está executando o arquivo bat com permissões elevadas ou não? 3. Você pode primeiro tentar se conectar ao servidor \\ manualmente e ver se ele requer alguma autorização de acesso.
29409 Ganesh R.

Respostas:

2

Citado aqui :

No meu caso, comecei com controle total sobre os compartilhamentos de origem e destino. O problema era que o Robocopy estava redefinindo a ACL no compartilhamento de destino para um valor nulo (ninguém tem permissão) antes de começar a recorrer subdiretórios. Após alguns testes rápidos, minha conclusão é que o Robocopy não manipula permissões herdadas. Digamos que você esteja copiando C: \ Share1 para D: \ e C: \ Share1 esteja herdando suas permissões do diretório raiz C: \; na verdade, ele não possui ACL explícita. Portanto, quando você copia sua ACL, na verdade está copiando ... nada. Ao copiar uma ACL vazia para o seu destino, suas permissões são removidas na primeira etapa da cópia e todas as gravações subsequentes no compartilhamento falham com o Erro 5.

Isso é apenas um problema ao copiar de uma fonte que você está acessando COM permissões herdadas e de um destino que você está acessando SEM permissões herdadas. Se você copiar C: \ (que possui explicitamente em sua ACL) para D: \, não haverá problema. Se esse for realmente o seu problema, você poderá resolvê-lo adicionando-se explicitamente à ACL de origem com controle total. Quando a cópia é executada, sua entrada da ACL é duplicada para o destino e as cópias subsequentes do arquivo podem ser gravadas. Você pode desfazer suas alterações (na origem e no destino) após a conclusão da cópia.

Se você continuar tendo problemas, apesar do acima, considere tentar a opção / B, que tenta fazer backup do arquivo usando seus privilégios como um operador de backup. Isso permitirá que você copie arquivos que de outra forma não poderia, por exemplo, se você não estiver na ACL do seu compartilhamento de destino. O padrão de robocópia é tentar uma cópia reinicializável. Ao desistir de cópias reinicializáveis, o pior caso é que você perde o arquivo atualmente sendo transferido no caso de uma interrupção. A próxima passagem reiniciará esse arquivo desde o início, em vez de parcialmente.

Espero que ajude. Aqui está uma citação do documento Robocopy da Microsoft sobre a opção / B:

Citar:

Se você copiar informações de segurança NTFS (ACLs) junto com os dados do arquivo, será possível copiar os arquivos aos quais você tem acesso de leitura, mas não o acesso de gravação. Depois que esse arquivo é copiado uma vez e as ACLs são aplicadas, você pode obter um erro de "Acesso negado" ao tentar copiar o arquivo novamente. Nessa situação, você deve usar a opção / B ou / ZB para copiar os arquivos no modo de backup.

/ B copia todos os arquivos com semântica de backup (modo de backup). O / ZB tenta primeiro copiar arquivos no modo reinicializável (para maior resiliência), mas se isso falhar com o erro "Acesso negado", ele tenta novamente a cópia automaticamente usando o Modo de backup.

harrymc
fonte