A unidade mapeada não está acessível para copiar arquivos usando o Agendador de Tarefas

1

Na minha máquina Windows Server 2008 R2, um arquivo de lote está agendado para ser executado usando o Agendador de Tarefas. Por algum motivo, apenas uma parte dos comandos no arquivo de lote é executada; Alguns comandos do MS-DOS são ignorados.

O arquivo MS Dos Batch se parece com isto:

s:
cd "S:\Reports\"
sqlcmd -S ipAddress -U login -P password -d dbname -i "S:\query.sql" -o "S:\Folder\Report.txt"
copy /A /Y "S:\Folder\Report.txt" Y:\

Quando executo o arquivo em lote clicando duas vezes nele, tudo é executado como pretendido; Mas quando é executado a partir do agendador de tarefas, apenas a parte sqlcmd é executada corretamente. O comando de cópia parece não rodar.

O Y: \ é uma unidade mapeada sob o mesmo login. Depois de digitar minha pergunta até agora, voltei e fiz mais um teste. Curiosamente, se eu substituir a unidade mapeada pela unidade local, tudo parece estar funcionando bem. Então, neste ponto, parece que a unidade mapeada é o problema. Alguma idéia sobre como resolver isso?

Essencialmente, como copiar ou mover arquivos para uma unidade mapeada (máquina diferente) usando o arquivo de lote executado a partir do Agendador de Tarefas?

    
por ToC 30.10.2015 / 00:52

1 resposta

1

@briantist (resposta copiada de)

S: e Y: provavelmente são unidades de rede mapeadas, mas elas são mapeadas no contexto de uma sessão do usuário. A tarefa agendada será executada em sua própria sessão e não terá essas unidades mapeadas.

Você deve usar o caminho UNC do compartilhamento ( \server\share ), pois isso deve funcionar em qualquer contexto (desde que o compartilhamento esteja acessível ao usuário em que a tarefa agendada está sendo executada).

    
por 30.10.2015 / 15:31