【问题标题】:Get all the shared folders of a computer in my network获取我网络中计算机的所有共享文件夹
【发布时间】:2014-11-20 10:50:56
【问题描述】:

我想获取我网络中的所有计算机以及其中的所有共享文件夹(应该在域和工作组中都可以使用)。我能够使用以下代码获取网络中的所有计算机

Dim ipproperties As NetworkInformation.IPGlobalProperties = NetworkInformation.IPGlobalProperties.GetIPGlobalProperties()
Dim domain As String = ipproperties.DomainName

Dim domainEntry As DirectoryEntry = New DirectoryEntry("WinNT://" + domain)
domainEntry.Children.SchemaFilter.Add("computer")

For Each computer As DirectoryEntry In domainEntry.Children
    ListBox1.Items.Add(computer.Name)
Next

但现在我想获取每台计算机的共享文件夹。所以我使用this code 使用DirectoryEntry。但是对于网络计算机,它给出了诸如“找不到组名”之类的错误。那么我收到错误的原因是什么。或者有没有其他方法可以获取我网络中计算机的共享文件夹。(我不想使用 WMI 解决方案)

【问题讨论】:

    标签: vb.net system.net directoryentry


    【解决方案1】:

    您可以使用 WMI 的 Win32_Share:查看示例 here(您需要

    1. Win32_LogicalDisk 替换为Win32_Share
    2. 将额外的参数传递给ManagementObjectSearcher,如示例here 以指定不同的计算机。

    【讨论】:

    • 有没有不使用WMI的解决方案?正如我在问题中提到的,我想要一个不使用 WMI 的解决方案。
    • @ITresearcher 抱歉错过了,但 WMI 是这里的最佳选择,所以除非你能解释为什么你不想使用 WMI,否则答案将保留:即使你不喜欢也使用 WMI它。
    • 因为 WMI 可能在某些系统中被禁用以及权限问题。
    • @ITresearcher 在当前的 WIndows 上禁用 WMI 会破坏很多事情(因此,除非您知道环境足够奇怪,否则会成为现实的阻止程序)。 WMI 可能在防火墙中被阻止,或者您可能缺乏权限,但这将适用于另一个远程处理....并且您需要远程访问以获取此信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多