Resolvido adicionando a seguinte ação antes de chamar o comando robocopy:
net use j: \RemoteHost\Files RemotePassword /user:RemoteUser
Estou tentando agendar uma sincronização de arquivos entre dois servidores dedicados em uma LAN. A máquina remota está executando o Windows Server 2003 e a máquina local está executando o Windows Server 2008.
Montei a pasta remota como a unidade J: network para superar qualquer problema de permissão e, quando executo o comando manualmente, tudo funciona conforme o esperado e o conteúdo da pasta é espelhado:
robocopy J:\ C:\Files /MIR > c:\robocopy.log
Mas assim que eu o coloco em uma tarefa agendada, ele falha com o código de retorno 0x10 (16), que é um erro grave . Então eu assumi um erro de permissões de rede e tentei agendar a ação entre duas pastas locais. O mesmo erro ocorreu e nenhum arquivo de saída robocopy.log
foi criado. Estou executando a ação como um administrador.
Por que minha tarefa agendada está falhando?
schtasks /query /v /fo LIST /s localhost
para referência: HostName: localhost
TaskName: \Sync Task
Next Run Time: 11/7/2010 3:00:00 AM
Status: Ready
Logon Mode: Interactive/Background
Last Run Time: 11/6/2010 2:49:21 PM
Last Result: 16
Author: HOST\Administrator
Task To Run: robocopy.exe "C:\LocalFolder" "C:\Destination" /MIR /LOG > c:\robocopy.log
Start In: N/A
Comment: N/A
Scheduled Task State: Enabled
Idle Time: Disabled
Power Management: Stop On Battery Mode
Run As User: HOST\Administrator
Delete Task If Not Rescheduled: Enabled
Stop Task If Runs X Hours and X Mins: Disabled
Schedule: Scheduling data is not available in this format.
Schedule Type: Daily
Start Time: 3:00:00 AM
Start Date: 8/6/2010
End Date: N/A
Days: Every 1 day(s)
Months: N/A
Repeat: Every: Disabled
Repeat: Until: Time: Disabled
Repeat: Until: Duration: Disabled
Repeat: Stop If Still Running: Disabled
Em vez de usar uma letra de unidade mapeada, use o caminho UNC do compartilhamento (\\ servername \ sharename \ folder). Isso simplificará as coisas, já que suas unidades mapeadas estão associadas à sua sessão, não necessariamente à sessão em que a tarefa agendada é executada.
Em seguida, verifique se o usuário associado à tarefa agendada tem acesso a esse compartilhamento.
Isso deve te arrumar.
Recentemente encontrei esse problema e resolvi o problema inserindo um caractere na tarefa agendada chamada "Executar com privilégios mais altos".