为什么我建议立即停用 VBScript

前言

大家好,我是 canmick。今天打开电脑时,收到一个 Window 10 即将停止维护的消息弹窗,起初以为是垃圾软件推送的小弹窗广告,于是半信半疑点开了微软官网一看,原来是真的。那跟我们程序员有啥关系?

还真有点关系,比如笔者上周处理了一个线上问题就与 Window 11 相关。

出问题的功能依赖 regedit 库获取 Windows 注册表,regedit 库底层使用 VBScript 脚本,然而 Window 11 24H2 起不再内置 VBScript 支持,这不就炸了吗。

客户端修复发版需要一段时间,解决不了燃眉之急,幸好 Window 11 还支持手动安装 VBScirpt,于是网上找一份安装指引给用户,相关指引如下

安装 VBScript 要求管理员账户,这操作流程看起来倒挺简单的嘛。但实际呢,很多电脑小白连电脑设置都不知道在哪,更别说什么是管理员账户,遇到问题的客户还得一个个远程指导🤣。

我的老板看了都直摇头,叫我赶紧想办法换掉这个库。我只能连夜调研选型把 regedit 换成了 registry-js,替换过程还踩了个坑,详见这篇文章《记一次无语的 Vite 构建配置问题排查》

VBScript 有什么错

网上简单搜索了一下,主要是由于 Microsoft 潜在的安全漏洞问题。

VBScript 引擎本身已多年未获微软实质性更新。随着 Window 10 停止支持,新发现的任何 VBScript 相关漏洞(包括可能影响调用它的宿主环境如 IE、WScript 的漏洞)将不再获得安全补丁,恶意脚本或文档就可以利用 VBScript 漏洞进行攻击,巴拉巴拉的....

总结一句话:立即停用 VBScript

VBScript 迁移

历史项目难免会遇到使用 VBScript 的地方,该如何处理?

假如是第三方库,建议搜索其他库进行替换。

假如代码中存在 VBScript 编写的代码,可以尝试往以下方向迁移:

PowerShell

深度集成于 Windows,面向对象,强大的管道和模块化设计,原生支持 .NET,丰富的内置 cmdlet 覆盖系统管理、文件操作、注册表、网络、WMI 等所有 VBScript 场景。 下面为获取某注册表值示例

C#, Go, Rust

这个迁移方向对技术团队有一定要求,但这些语言高性能、内存安全(尤其 Rust),适合构建高性能核心组件。如 registry-js 用的就是 C#

小结

本文先是叙述了某程序因 Window 11 "断供" VBScript 而产生功能异常,再简单介绍了 VBScript 漏洞问题,最后建议开发者们停用 VBScript ,向 PowerShell、C#、Go、 Rust 等方向迁移。

笔者不才,能想到的点子不多,欢迎大佬们评论区补充更多的迁移方案🥰

相关推荐
崔庆才丨静觅1 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60612 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了2 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅2 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅2 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅3 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment3 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅3 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊3 小时前
jwt介绍
前端
爱敲代码的小鱼3 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax