【问题标题】:How to determine if a given UNC network share has already been mapped to a drive letter如何确定给定的 UNC 网络共享是否已映射到驱动器号
【发布时间】:2018-02-22 11:05:15
【问题描述】:

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

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

【问题讨论】:

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

标签: vb.net network-programming


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2011-05-22
    • 2012-02-16
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多