是否可以同時建立到同一遠端電腦上的兩個共享文件夾的“網路使用”連接(避免錯誤 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。我幾乎被迫做 a
net use /delete
,但這阻止了我做什麼我想要(更不用說使用者可能與同一台機器建立了其他不相關的連接,我必須為他殺死它們 - 醜陋)。為什麼 Windows 有這個限制對我來說毫無意義(我使用的是 7 和 Server 2008 R2)。是否有一個簡單的解決方案,我可以在從同一個 Windows 帳戶建立的同一台遠端電腦上建立兩個共享文件夾的兩個連接,而不會遇到錯誤 1219?
使用 FQDN、主機名和 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
(我一直輸入密碼作為最後一個參數)