![windows 10 Home 网络驱动器上 vb6 inet 控制出现错误](https://linux22.com/image/1563834/windows%2010%20Home%20%E7%BD%91%E7%BB%9C%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%8A%20vb6%20inet%20%E6%8E%A7%E5%88%B6%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF.png)
我多年前用 vb6 编写了一个实用程序,它使用 vb6 inet 控件访问网站进行自我更新。更新功能在数百台运行 XP、win7、win8、win10、svr 2003 和其他系统的机器上运行良好,这些机器安装在本地和网络驱动器上。
但是,有一台新的 Windows 10 家庭版机器,如果程序从网络驱动器运行,它就无法工作(更新,程序本身工作正常)。如果从 c: 驱动器运行,它可以工作,如果复制到网络 f: 驱动器,我收到错误“名称未解析”,指的是更新站点 url。
我关闭了 MacAfee 防火墙,但没有任何效果。该程序经过数字签名,因此应该值得信任。该 URL 有效,可以从机器上的 IE 和 Chrome 导航到。
该程序最初安装在 c: 驱动器上,但 f: 驱动器上驻留着相同的副本,并且该程序在网络驱动器上运行良好,只是无法连接到更新站点。
这是一个安全功能吗?如果是,我该如何禁用它,或者这是 win 10 家庭版(而不是专业版)的限制。
我知道 home 有一些限制,比如它不支持远程桌面(在我看来这很愚蠢)。
我该如何解决这个问题?
更多信息:
因此,我从 c: 卸载了该程序,打算在联网的 f: 上重新安装,看看是否有效果。但是,在明智的安装程序中,我无法选择联网驱动器进行安装...仅列出了 c: 和 cdrom d:。为什么它看不到映射的驱动器号?
更多的:
重新启动后,wise 安装程序可以看到联网驱动器。在网络上安装无法解决问题。除了 vb6 inet 控件之外,网络上的 exe 对 wininet 的 API 调用失败,但本地 c: 驱动器上的 exe 对 wininet 的 API 调用成功。
简单问题重述:
some.exe(32 位)使用 wininet.dll 连接到互联网并发布一些数据http://myurl.com.some.exe 安装在 c:\path\some.exe 以及网络共享 f:\path\some.exe 上。
从 cmd 提示符:
c:\path> some.exe (有效)
c:\path> f:\path\some.exe(失败,错误 12007 名称未解析)
f:\path> some.exe(失败,错误 12007 名称未解析)
f:\path> c:\path\some.exe (有效)
结论:如果some.exe驻留在网络共享上,互联网访问就会被阻止。
McAfee 已卸载。防火墙已关闭。Internet 安全区域设置为最小值。目标 URL 已添加为受信任站点。
答案1
答案似乎是 Windows 10 版本 1803 更新(Windows 10 2018 年 4 月更新)阻止使用 SMB1x 托管在网络驱动器上的程序访问互联网。SMB 版本必须为 2.0 或更高版本。SMB 2.0 是在 Server 2008 中引入的。感谢 EBGreen 提供的 SMB 线索。
编辑:决议
2018 年 6 月 26 日 KB4284848 适用于:Windows 10,版本 1803 修复了此问题。