我有一个应用需要编写一个需要访问网络驱动器上的文件的脚本 - 称之为\ MyServer \ Share。运行脚本的程序无法处理UNC。在某些系统上,这个(\ MyServer \ Share)已经映射到其他系统上了。我当前的逻辑找到一个空驱动器并尝试映射到该驱动器,但失败并显示错误1219(不允许使用多个用户名,由同一用户与服务器或共享资源建立多个连接)。
如何检查共享(\ MyServer \ Share)是否已映射?
答案 0 :(得分:1)
好的部分归功于Fadi的评论,该评论让我发现了一条略有不同的google路径,我找到了自己的方式answer 。这个答案旨在找到一个文件的UNC,所以我稍微修改了它。
这是我的代码:
Public Shared Function GetDriveUNC(ByVal sDrive As String) As String
If sDrive.IndexOf(":") Then
Dim searcher As New ManagementObjectSearcher("SELECT RemoteName FROM win32_NetworkConnection WHERE LocalName = '" + sDrive.Substring(0, 2) + "'")
For Each managementObject As ManagementObject In searcher.[Get]()
Dim sRemoteName As String = TryCast(managementObject("RemoteName"), String)
Return (New Uri(sRemoteName)).ToString()
Next
Return sDrive
Else
Return sDrive
End If
End Function