今天在虚拟机win7下测试软件时,发现用vbs下载codechina仓库文件时出现错误,提示:

脚本: C:\Users\Administrator\Desktop\SoftCnKiller2.51\data\CodeChina更新名单.vbs
行: 21
字符: 2
错误: 安全频道支持出错

代码: 80072F7D
源: WinHttp.WinHttpRequest

在这里插入图片描述
对应vbs代码:

Sub downFile(url,path)
	Set xHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
	Set bStrm = CreateObject("Adodb.Stream")
	xHttp.Open "GET", url, False
	xHttp.Send
	with bStrm
		.type = 1 '
		.open
		.write xHttp.responseBody
		.savetofile currentfolder+path, 2 '//覆盖
	end with
End Sub

出错的是xHttp.Send那行。

  • 这部分代码在之前能正常自行
  • 现在win10下也能正常执行
  • 改成从gitee仓库下载也是正常。

那问题只可能出现在codechina网站上,考虑到前段时间2021年7月26日codechina出现502错误,可能是网站方面升级了。再根据网上搜索了下错误内容,猜测可能与TLS协议有关。

运行inetcpl.cpl,高级选项卡,发现勾选了TLS1.0-1.2,IE浏览器能正常访问codechina和gitee链接。取消勾选TLS1.2后不能访问codechina但能访问gitee。

那问题应该比较明朗了,应该是网站更新后codechina只支持TLS1.2协议,不支持别的,然后VBS调用的WinHttp不支持TLS1.2。

根据这个信息网上搜索,很快可以找到微软官方的解决方案:
更新了 以在 Windows 中的 WinHTTP 中启用 TLS 1.1 和 TLS 1.2 作为默认安全协议

网页里下载简易修复工具运行后VBS可以正常从codechina下载文件。
如果链接失效可以下载:
地址1:https://download.csdn.net/download/hfhbutn/20618270
地址2:https://free.lanzoui.com/i1NP2rz8r1i

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐