2

假设我可以访问 IP 1.2.3.4 的 SMB 服务器,我如何确定可用共享列表?

当我输入 UNC 路径 \\1.2.3.4\ 时,Windows 资源管理器可以执行此操作 - 但命令提示符“dir \\1.2.3.4\”失败!

我已经尝试了通常的 FindFirstFile/FindNext 调用——我成功地使用它来读取每个共享上的文件和目录,但它们不能直接在服务器根目录上工作。

理想情况下,我需要一些适用于 XP 的东西。

编辑:我想以编程方式执行此操作,而不是从命令行执行此操作。重定向和解析来自“net view 1.2.3.4”的输出会起作用,但理想情况下我正在为这项工作寻找一个 API。

4

4 回答 4

8

根据文档,有一个NetShareEnum和一个WNetEnumResource功能。

于 2009-05-22T21:14:27.710 回答
4

网络视图 \\1.2.3.4

查看http://www.ss64.com/nt/net_share.html

编辑:如果您想以编程方式执行此操作,NetShareEnum似乎可以工作。

于 2009-05-22T21:06:31.843 回答
0

看来您可以使用 WMI 来获取此信息。查看这篇文章,了解一些简洁的 PowerShell 教程,这些教程现在显示如何使用 Win32_Share WMI 对象。

于 2009-05-22T21:16:43.693 回答
0

从不使用 WMI(未原生安装)
使用 Win32 api 枚举共享,在谷歌群组上发布数百万次(win32)

于 2009-05-23T15:05:46.757 回答