IE11环境VBScript调用Outlook.Application报ActiveX无法创建对象问题
老旧内网站点IE调用VBScript触发Office程序异常解决方案
故障表现
- 用户点击站点超链接跳转至指定ASP页面后,弹出报错:
VBScript: ActiveX component can't create object: 'outlook.application' - 预期逻辑:页面通过VBScript启动Outlook、加载本地模板并自动填充收件人,用户编辑后直接发送邮件
- 涉及ASP页面核心代码如下:
<html> <head> <meta http-equiv="X-UA-Compatible" content="IE=9" /> <SCRIPT LANGUAGE=VBScript> Set objOutlook = CreateObject("Outlook.Application") Set myItem = objOutlook.CreateItemFromTemplate("<%=template%>") myItem.Display myItem.To = "<%=EmailTo%>" myItem.Display window.close() </SCRIPT> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> </head> <body bgcolor="#1d4392" > </body> </html>
已确认环境信息
- 终端配置:Win10系统、IE11浏览器、64位Office 365
- 故障触发节点:用户办公环境从RDS远程桌面迁移至本地笔记本后首次出现
- 对照测试结果:非域加入的同配置Win10+Office365设备可正常运行该页面
- 前置排查结论:页面运行在本地Intranet安全域,VBScript已通过GPO明确允许,事件查看器存在Outlook启动记录,可排除IE安全配置问题;调用Word程序也会触发相同报错
- 已尝试无效操作:重装Office、Office自带修复
根因与修复方案
1. 进程位宽不匹配问题
64位Office的COM对象仅支持被64位进程调用,多数域环境会通过GPO强制IE11运行在32位模式,导致COM调用失败。
验证方法:打开IE后启动任务管理器,查看IE进程后缀是否标注*32,如是则属于位宽不匹配。
修复方法:调整域GPO路径计算机配置/管理模板/Windows组件/Internet Explorer/安全功能/增强保护模式/启用64位选项卡的增强保护模式,针对本地Intranet域启用64位进程运行。
2. Office即点即运行COM注册失效
域权限限制会导致Office 365 Click-to-Run版本的COM注册项无法被IE正常读取,手动重注册即可解决。
修复方法:以管理员身份运行命令提示符,执行对应组件注册命令:
- Outlook组件注册:
"C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE" /regserver - Word组件注册:
"C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE" /regserver
3. 跨权限调用拦截
如果Outlook提前以管理员权限启动,普通用户权限运行的IE调用COM对象会被系统UAC拦截,确保两个程序运行在相同权限等级即可。
内容的提问来源于stack exchange,提问作者Arne Deruwe
相关产品推荐
相关产品推荐

