WNetOpenEnum 在根级别之后不返回任何内容
Posted
技术标签:
【中文标题】WNetOpenEnum 在根级别之后不返回任何内容【英文标题】:WNetOpenEnum does not return anything after root level 【发布时间】:2021-01-18 01:51:58 【问题描述】:我有一个 C# 代码,它使用 WNetOpenEnum 和 WNetEnumResource 枚举网络邻居。这会返回“Microsoft 终端服务”、“Microsoft Windows 网络”和“Web 客户端网络”,但不会返回 Windows 10 中 Microsoft Windows 网络级别的任何内容。
不过,我可以在我的 Windows 资源管理器中看到已连接的共享。这个问题中也描述了问题,但是没有太多答案-https://social.msdn.microsoft.com/Forums/en-US/6b2120f6-523e-4705-9231-fd19f05611eb/wnetopenenum-wont-enumerate-past-the-root-level-error-1231?forum=windowssdk
看起来 WNetOpenEnum 在 Windows 10 中不再正常工作。我该如何更换它? Windows 资源管理器使用什么来显示网络共享?
我阅读了 NetUseEnum 函数,但在 MSDN 中有关于它的评论
此功能仅适用于服务器消息块(LAN Manager 工作站)客户端。 NetUseEnum 函数不支持 分布式文件系统 (DFS) 共享。使用 a 枚举共享 不同的网络提供商(例如,WebDAV 或 DFS 共享),使用 WNetOpenEnum、WNetEnumResource 和 WNetCloseEnum 函数。
【问题讨论】:
使用this sample,我在windows 10 1903 上也得到错误描述“该工作组的服务器列表当前不可用”,但我可以在windows 10 2004 版本上得到该列表。跨度> @DrakeWu-MSFT 是的,我有 19041 版本,但它不起作用。 我也有操作系统版本 19041.208,该示例对我有用。运行示例时是否收到任何错误消息?并检查你是否有Start the "Function Discovery Provider Host" and "Function Discovery Resource Publication" services 【参考方案1】:我的 Win10 笔记本电脑也遇到了同样的问题。安装 Windows 更新(KB4586781、KB4580419、KB4586864、KB4577266)后出现此问题。
我找到了以下解决方案:您应该初始化 SMBv1 协议。 更多详情见https://social.technet.microsoft.com/Forums/en-US/6f102ed1-8e76-4cb7-8dec-05714466d441/net-view-system-error-1231?forum=win10itpronetworking
【讨论】:
以上是关于WNetOpenEnum 在根级别之后不返回任何内容的主要内容,如果未能解决你的问题,请参考以下文章
React Router v4 嵌套匹配参数无法在根级别访问
如何在 Swift 中使用动态键(在根级别)解码此 JSON?