Eu tive o mesmo problema em que um Bulk Copy Job (BCP) no SQL Server precisava gravar um arquivo em outro servidor, gerenciado por um grupo diferente na organização.
O truque é obter a unidade mapeada como o usuário que o trabalho BCP está usando.
Você mapeia a unidade como uma conta de diretório ativo dedicada que tem permissões para o destino desejado, o que alguns chamam de uma conta de serviço. Eu tive que trabalhar com meu pessoal AD para obter uma configuração.
Para descobrir qual conta de usuário está sendo usada pelo BCP, execute este comando em uma janela Consulta do SQL Server:
EXEC xp_cmdshell 'ECHO %USERDOMAIN%\%USERNAME%
Ao mapear a unidade, use whoami
no prompt de comando.
No meu caso, não consegui entrar no SQL Server como a conta SYSTEM, então construí um trabalho em lotes que poderia então ser executado pelo Agendador de Tarefas, mas executar como a conta SYSTEM .
Eu coloquei comandos no trabalho em lote para gravar os resultados em um arquivo de texto, já que eu não conseguiria vê-lo.
** Trabalho em lote abaixo **
ECHO ON
ECHO This will map the drive, but is being run by task scheduler AS the user SYSTEM
ECHO which should make it accessible to the user SYSTEM
ECHO List the existing drives first.
net use >> c:\Test\SystemNetUseOutput.txt
net use R: \MyRemoteServer\MyDirectory\ /P:Yes /u:MyDomain\MyUsername pa$$word
ECHO the /P switch makes the drive remain after reboot
ECHO List the existing drives with the new mapping
net use >> c:\Test\SystemNetUseOutput.txt
ECHO See what user this batch job ran under
whoami >> c:\Test\SystemNetUseOutput.txt
ECHO need to exit to allow the job to finish
EXIT
** Espero que isso ajude alguém **