Windows 11下VB6.EXE被识别为未知发布者的问题咨询
问题解答
这属于正常情况,并非你的操作有误。Visual Basic 6发布于2000年,其主程序VB6.EXE没有符合Windows 11安全标准的有效数字签名,UAC(用户账户控制)会将这类无签名的程序标记为“未知发布者”,触发确认提示来防范潜在的未授权程序运行,这是系统的默认安全机制。
禁用UAC确实能消除提示,但会大幅降低系统安全性,不建议采用。以下是更安全的替代方案:
调整UAC安全选项(针对性放宽)
- 按下Win+R输入
secpol.msc回车,打开「本地安全策略」 - 依次展开「本地策略」→「安全选项」,找到「用户账户控制:仅提升已签名并验证的可执行文件」,将其设置为「禁用」
这个设置仅取消对程序签名的强制验证,比完全关闭UAC的安全风险低很多,且能解决VB6的提示问题。
- 按下Win+R输入
给脚本添加管理员权限标记
- 将调用VB6的编译命令写入批处理文件(比如
CompileVB.bat) - 右键点击该批处理文件,选择「属性」→「快捷方式」→「高级」,勾选「以管理员身份运行」
后续通过这个快捷方式启动脚本时,只会触发一次UAC确认,而非每次调用VB6.EXE都弹出提示。
- 将调用VB6的编译命令写入批处理文件(比如
为VB6.EXE添加自签名
如果你能生成自签名证书,可以给VB6.EXE签名让系统信任它:- 用
makecert.exe生成自签名证书(命令示例:makecert -r -pe -n "CN=你的名称" -ss my -sr localmachine VB6Cert.cer) - 用
signtool.exe完成签名(命令示例:signtool sign /v /s my /n "你的名称" "C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE")
注意:自签名证书仅在你的本地系统生效,其他设备不会识别该签名。
- 用
内容的提问来源于stack exchange,提问作者mordnis
相关产品推荐
相关产品推荐

