【发布时间】:2017-12-15 16:09:49
【问题描述】:
我有一个 vba 宏,它之前使用 shell 命令启动了一个 .bat 批处理文件。
使用的shell命令形式很简单(如图):
dblResult = Shell("c:\fullPath\batchFile.bat")
突然之间,这停止了工作,excel 应用程序在这行代码处意外关闭,没有错误或警告消息,并且在批处理文件开始执行其 DOS 命令的命令窗口打开之前。
如果手动启动而不是从 excel VBA 宏启动,批处理文件仍将成功运行。
这在公司工作站上运行,所以我想知道安全更新是否对系统进行了任何更改,这些更改现在阻止了应用程序可能被视为危险的行为。
还有其他人遇到过这个问题吗?
2017-09-06 附录:
VBA shell 命令关闭/崩溃 excel 的故障是在 7 月 10 日之后首次发现的,并且发现在业务中的其他 Windows 7 机器上也很明显。
今天,一台公司的 Windows 7 笔记本电脑在之前的测试中发现有同样的问题,现在已经(神秘地)恢复到 Shell 命令再次工作。
shell 命令运行的笔记本电脑与 Excel 应用程序崩溃的桌面之间的唯一区别是 Windows 安全更新 KB3203468,它于 7 月 25 日自动安装在(工作的)笔记本电脑上,我相信这是后期首次测试笔记本电脑并发现其显示相同问题行为的时间。
目前这是解决此问题的唯一方法,并且给出的更新说明参考
“Microsoft Office 2010 32 位版本中存在一个安全漏洞,当打开恶意修改的文件时,该漏洞可能允许任意代码运行。此更新解决了该漏洞。”
这似乎在受影响的正确范围内,即用于应用程序的 VBA。
有趣的是,更新的发布日期是 7 月 11 日,与问题首次出现的时间一致,尽管它似乎负责解决笔记本电脑上的问题。
不幸的是,任何尝试在桌面上安装此更新(以管理员身份)以验证这是否解决了问题,并显示消息“此系统上没有安装此软件包影响的产品”,因此安装失败。
一个企业 IT 人员正在调查它....
【问题讨论】:
标签: vba excel shell batch-file