Estou trabalhando em um código que pode copiar arquivos entre dois compartilhamentos de arquivos de rede arbitrários, por exemplo:
copy files from \pc1.domain.net\Shared\DirA // source shared folder
to \pc2.domain.net\Shared\DirB // target shared folder
Internamente, isso funciona chamando primeiramente net use
para estabelecer uma conexão (anônima) com uma pasta compartilhada em uma máquina remota específica. No caso acima, duas conexões serão estabelecidas ao mesmo tempo, em seguida, os arquivos serão lidos do compartilhamento de origem e gravados no compartilhamento de destino em partes.
Uma preocupação que tenho aqui é uma situação em que a pasta compartilhada de origem e de destino esteja na mesma máquina remota - isso pode causar um erro de "várias conexões" (1219). Ou seja Eu quero copiar arquivos de \pc1.domain.net\Shared\DirA
para \pc1.domain.net\Shared\DirB
. O código está sendo executado a partir da mesma conta do Windows e os compartilhamentos de arquivos podem ter credenciais e permissões de acesso diferentes. Então, o que estou tentando fazer é, da mesma conta do Windows , executar algo como:
net use \pc1.domain.net\Shared\DirA pwd1 /user:[email protected]
net use \pc1.domain.net\Shared\DirB pwd2 /user:[email protected]
No entanto, o Windows por design parece pensar que essas conexões se referem ao mesmo recurso porque estão na mesma máquina e, às vezes, parece que o erro 1219 pode acontecer no caso acima:
Multiple connections to a server or shared resource by the same user,
using more than one user name, are not allowed. Disconnect all
previous connections to the server or shared resource and try again.
Isso significa que posso ter uma situação em que é impossível ter duas conexões estabelecidas como acima - pelo menos testá-las manualmente pelo cmd resulta no erro 1219. Sou forçada a fazer um net use /delete
, mas isso me impede de fazer o que eu quero (sem mencionar que o usuário pode ter outras conexões não relacionadas estabelecidas na mesma máquina e eu devo matá-las para ele - feio). Não faz sentido para mim por que o Windows tem essa limitação (estou usando o 7 e o Server 2008 R2).
Existe uma solução fácil onde eu posso ter duas conexões para duas pastas compartilhadas na mesma máquina remota estabelecida a partir da mesma conta do Windows sem incorrer em erro 1219 ?