Назад | Перейти на главную страницу

Возможно ли одновременное подключение к двум общим папкам на одном удаленном компьютере (чтобы избежать ошибки 1219)?

Я работаю над кодом, который может копировать файлы между двумя произвольными сетевыми файловыми ресурсами, то есть:

copy files from  \\pc1.domain.net\Shared\DirA   // source shared folder
to               \\pc2.domain.net\Shared\DirB   // target shared folder

Внутри это работает путем первого вызова net use для установки (анонимного) подключения к общей папке на определенном удаленном компьютере. В приведенном выше случае два соединения будут установлены одновременно, затем файлы будут считываться из исходного общего ресурса и записываться в целевой общий ресурс по частям.

Одна из моих проблем - ситуация, когда и исходная, и целевая общие папки находятся на одном удаленном компьютере - это может вызвать ошибку «несколько подключений» (1219). Т.е. Я хочу скопировать файлы из \\pc1.domain.net\Shared\DirA к \\pc1.domain.net\Shared\DirB. Код выполняется из одной и той же учетной записи Windows, а общие файловые ресурсы могут иметь разные учетные данные и разрешения для доступа. Итак, что я пытаюсь сделать, из той же учетной записи Windowsвыполните что-то вроде:

net use \\pc1.domain.net\Shared\DirA   pwd1   /user:user_of_DirA@domain.net 
net use \\pc1.domain.net\Shared\DirB   pwd2   /user:user_of_DirB@domain.net

Однако Windows изначально считает, что эти подключения относятся к одному и тому же ресурсу, потому что они находятся на одном компьютере, и иногда кажется, что в приведенном выше случае может произойти ошибка 1219:

Множественные подключения к серверу или общему ресурсу одним и тем же пользователем с использованием более одного имени пользователя не разрешены. Отключите все предыдущие подключения к серверу или общему ресурсу и повторите попытку.

Это означает, что я могу столкнуться с ситуацией, когда невозможно установить два соединения, как указано выше - по крайней мере, тестирование этого вручную с помощью cmd приводит к ошибке 1219. Я в значительной степени вынужден сделать net use /delete, но это мешает мне делать то, что я хочу (не говоря уже о том, что у пользователя могут быть другие несвязанные соединения с той же машиной, и я должен убить их за него - уродливо). Для меня НЕ имеет смысла, почему в Windows есть это ограничение (я использую 7 и Server 2008 R2).

Есть ли простое решение, при котором я могу иметь два подключения к двум общим папкам на одном удаленном компьютере, установленном из одной учетной записи Windows, без ошибки 1219?

Используя полное доменное имя, имя хоста и IP-адрес, вы можете иметь три подключения с разными учетными данными к одному и тому же серверу.

Например.:

net use \\pc1.domain.net\Shared\DirA /user:user_of_DirA@domain.net pwd1
net use \\pc1\Shared\DirB /user:user_of_DirB@domain.net pwd2
net use \\1.1.1.1\Shared\DirC /user:user_of_DirC@domain.net pwd3

(Я всегда вводил пароль в качестве последнего параметра)