O trabalho de Robocopy será executado manualmente, mas não como uma tarefa agendada

1

Usando o Robocopy no Server 2012.

Eu criei um script .cmd para copiar alguns arquivos de uma unidade mapeada para a máquina local.

A unidade mapeada está em outro servidor em um domínio diferente e se conecta às credenciais de administrador do domínio de domínios remotos. Domínios não são confiáveis.

Funciona se eu clicar duas vezes no arquivo .cmd e executá-lo manualmente (logado como administrador do domínio)

Mas assim que ele é executado como uma tarefa agendada (funcionando também como administrador de domínio), ele é concluído com o código de status 0, mas na verdade não copia nada.

Linha simples do script:

    @echo on
START /WAIT c:\windows\system32\Robocopy.exe "W:\Folder1\Folder2\Folder3\Folder4" "C:\Folder1\Folder2\Folder3\Folder4" file.txt /np /LOG+:"C:\RCLog\schtask.log"

Quando executado manualmente, o arquivo de log contém:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows                              
-------------------------------------------------------------------------------

  Started : 13 December 2013 10:51:59
   Source : W:\Folder1\Folder2\Folder3\Folder4\
     Dest : C:\Folder1\Folder2\Folder3\Folder4\

    Files : file.txt

  Options : /DCOPY:DA /COPY:DAT /NP /R:1000000 /W:30 

------------------------------------------------------------------------------

                       1    W:\Folder1\Folder2\Folder3\Folder4

------------------------------------------------------------------------------

               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         0         0         0         0         0
   Files :         1         0         1         0         0         0
   Bytes :     4.1 k         0     4.1 k         0         0         0
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00
   Ended : 13 December 2013 10:51:59

Mas quando executado a partir da tarefa agendada:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows                              
-------------------------------------------------------------------------------

  Started : 13 December 2013 10:44:47
2013/12/13 10:44:47 ERROR 3 (0x00000003) Getting File System Type of Source W:\Folder1\Folder2\Folder3\Folder4\
The system cannot find the path specified.


   Source - W:\Folder1\Folder2\Folder3\Folder4\
     Dest : C:\Folder1\Folder2\Folder3\Folder4\

    Files : file.txt

  Options : /DCOPY:DA /COPY:DAT /NP /R:1000000 /W:30 

------------------------------------------------------------------------------

2013/12/13 10:44:47 ERROR 3 (0x00000003) Accessing Source Directory W:\Folder1\Folder2\Folder3\Folder4\
The system cannot find the path specified.

Alguém tem alguma ideia, por favor?

Obrigado

    
por Andrew 13.12.2013 / 11:56

3 respostas

4

Basta usar o caminho UNC para o servidor remoto em vez da letra de unidade W:

O motivo provável é que o mapeamento de rede não está disponível durante a tarefa agendada. Você também pode alterar seu script para mapear a unidade, fazer o robocopy e desmapear no final, mas é mais simples usar o caminho UNC.

    
por 13.12.2013 / 12:17
1

Quando a tarefa é executada a partir do agendador, as credenciais fornecidas são usadas somente para autenticação, não para recriar o ambiente de todo o usuário. Você deve copiar diretamente para o caminho UNC ou mapear a unidade S: para UNC dentro do script antes do comando robocopy.

Indo para o seu problema, no script, antes do comando ROBOCOPY, adicione net use w: \ netshare_path $. Se o script encontrar a letra w usada por uma unidade mapeada, haverá erro, mas continuará com ROBOCOPY. Se a letra w não for usada, mapeará a unidade para ela e a usará no ROBOCOPY. Se você não precisa da unidade mapeada, basta colocar no script a net use w: / delete após ROBOCOPY.

Então deve ficar assim:

NET USE W: \server\drive_letter$ /USER: <USERNAME> <PASSWORD>
ROBOCOPY "W:\Folder1\Folder2\Folder3\Folder4 " "C:\Folder1\Folder2\Folder3\Folder4 " file.txt /np /LOG+:"C:\RCLog\schtask.log" 
NET USE W: /delete 
    
por 09.03.2017 / 15:23
-3

Para cópia do Winrobo, use o caminho UNC para o servidor remoto.

URL = link

    
por 17.12.2013 / 06:45