2017-09-13 49 views
1

我有一个应用程序需要编写需要访问网络驱动器上的文件的脚本 - 称为\ MyServer \ Share。运行该脚本的程序无法处理UNC。在某些系统上(\ MyServer \ Share)已经映射到其他人上了。我当前的逻辑找到一个空的驱动器,并尝试映射到该驱动器,但失败并显示错误1219(不允许使用多个用户名与同一用户建立多个服务器连接或共享资源连接)。如何确定给定的UNC网络共享是否已映射到驱动器号

如何检查共享(\ MyServer \ Share)是否已映射?

+0

也许是这样的:[如何检查映射网络驱动器连接(https://stackoverflow.com/q/17848370/4039286) – Fadi

+0

感谢一个想法,但这将返回映射驱动器的驱动器号。我正在查看是否在映射的所有驱动器中,是否有指向UNC \\ MyServer \ Share的驱动器。 –

回答

1

好的,部分归功于Fadi的评论,这让我发现了一条稍微不同的谷歌路径,我发现我的方式是我的方式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 
相关问题