从命令行,可以在没有任何参数的情况下调用net use,并获取本地计算机上的计算机连接列表。这提供了映射网络驱动器的列表,以及使用net use
命令定义的本地网络共享和Web文件夹的网络连接。
可以创建与本地网络共享的网络连接,如下所示:
net use \\MyComputerName\MyShareName
可以创建与Web文件夹(例如WebDAV或SharePoint)的网络连接,如下所示:
net use http://MySharePoint:12345/Shared%20Documents/MyFolder
调用net use
将按以下方式列出连接:
C:\>net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
Unavailable Q: \\OldServer\OldShare Microsoft Windows Network
OK U: \\MyServerName\Name of Shared Folder
Microsoft Windows Network
Unavailable W: http://MyOldSharePoint Web Client Network
X: \\MyWebDavServer@12345\DavWWWRoot
Web Client Network
\\MySharePoint@12345\Shared%20Documents\MyFolder
Web Client Network
OK \\MyComputerName\MyShareName
Microsoft Windows Network
OK \\HostName\ShareName Microsoft Windows Network
The command completed successfully.
映射网络驱动器
我可以通过调用DriveInfo.GetDrives()
来获取C#中的映射驱动器。
净使用网络共享连接
我能够获得通过PInvoke创建的网络共享的连接以及使用Windows API NetUseEnum
。
净使用与网络文件夹的连接
我能够通过使用Windows API WNetOpenEnum
和WNetEnumResource
获取Web客户端网络服务器的列表,但这并没有让我获得共享名称的完整路径文件夹;它只获取服务器名称。
我无法找到获取net use
允许您定义的网络文件夹的Web客户端网络连接的方法。
我确信必须有可以返回这些内容的Windows API。如果有人知道,请告知。我当然希望避免使用穷人的解决方案,例如通过命令行进程调用net use
并解析其输出。
注意:我不想要使用WMI的解决方案。
答案 0 :(得分:0)
我非常确定Win32_LogicalDisk类应包含您需要的信息,如果不尝试注册表,两种方法的示例都在Get-or-List-Network-shares-in-CSharp-using-WMI中制品
链接
https://msdn.microsoft.com/en-us/library/aa394173(v=vs.85).aspx
http://www.morgantechspace.com/2014/02/Get-or-List-Network-shares-in-CSharp-using-WMI.html