【发布时间】:2017-12-29 16:52:01
【问题描述】:
自从最新的 Windows 更新(creators-update,winver 提供 1703,内部版本 15063.483)以来,我们遇到了 VBScript 访问 COM 对象的问题。它似乎只是消耗内存,直到内存超出。
我们已经检查了我们的来源,并将其制作成一个使用 FileSystemObject 的简单 vbs 文件。
看看这个简单的脚本文件:
Dim fso, folder
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso Is Nothing Then
Do
Set folder = Nothing
Set folder = fso.GetFolder("C:\Users")
Loop
Set folder = Nothing
Set fso = Nothing
End If
它只是挂在那个循环中,但如果 O 查看任务管理器,我会看到进程 wscript.exe 消耗内存。
这只发生在安装了创作者更新的 Windows 10 系统上。
任何提示出了什么问题?可能是 VBScript 引擎中的任何地方的错误?
【问题讨论】:
-
不,它与睡眠语句无关。在创建者更新脚本“工作”之前,这意味着它在运行时不会消耗任何更多的内存。是的,我确信这一点。可以在两个系统上并行测试脚本,一个有更新,一个没有(当然它只是为了测试,与我们有同样问题的真实应用没有太大关系)
-
它不断增长,直到进程由于内存不足而崩溃。它不特定于文件系统对象或 get-folder-method。看起来来自 vbs 的任何 com 方法调用都会导致问题
-
创建者更新似乎有问题。微软论坛上报告了一些其他副作用(如损坏的cmd)。很多次更新解决了这个问题。看看你有没有新的更新,或重新安装此更新。
-
它是一个干净、全新安装的 Windows 系统,已停用防御者和防火墙,并且没有安装额外的防病毒软件……它与 fso 无关。其他对象也有这个错误
-
经过测试的 vbscript 和 javascript,都显示了所描述的行为,因此它不是 VBScript 引擎。为了排除主机,我已从
[w|c]script.exe脚本更改为.hta文件,并且在 vbs 和 js 中都不会发生暴露的行为。它“似乎”在[w|c]script.exe代码中存在问题。
标签: memory vbscript com windows-10