从IE8中的本地VBscript获取Scripting.FileSystemObect错误

时间:2011-07-07 21:20:26

标签: windows windows-7 internet-explorer-8 vbscript

我目前正在研究警车上的笔记本电脑。他们运行一个名为IMobile的应用程序,它是我们CAD系统的扩展,允许他们进行车辆查询,获得更多呼叫信息等。

IMobile应用程序基本上是IE覆盖,它使用本地笔记本电脑上的htm文件。我们添加了一些执行各种任务的简单VBScripts。这些任务所需的一些常用功能位于名为PoliceFunctions.vbs的VBscript中,该脚本与所有其他脚本包含在同一目录中。这种方法在IE和Windows的早期版本中运行良好,但我们在Windows 7中使用IE8获得脚本错误,具体来说,“ActiveX组件无法创建对象:”Scripting.FileSystemObject“'并且它引用了上面提到的函数脚本

如果我设置IE的设置以允许它运行未标记为安全的ActiveX控件,脚本运行正常,但我不想打开一个大的安全漏洞。我已经尝试将localhost和目录添加到“可信站点”列表中,但没有任何效果。我已经尝试重新注册另一篇文章中提到的SCRRUN.dll以及wscript -regserver。我已经改变了IE的设置,允许本地活动内容没有成功。

任何人都有任何其他的想法,我怎么能允许这个脚本运行而不会打开一个大的安全漏洞,或者让最终用户唠叨他的IE设置会导致apocolypse?

3 个答案:

答案 0 :(得分:0)

编写ActiveX,实现IObejctSafety并在其中包装FSO方法。请注意,这是关于ActiveX的脚本安全性,但它比打开每个不安全的ActiveX更好。

答案 1 :(得分:0)

http://blogs.msdn.com/b/ieinternals/archive/2011/03/23/understanding-local-machine-zone-lockdown-restricted-this-webpage-from-running-scripts-or-activex-controls.aspx很长,但解释了IE如何使用安全区域做出信任决定。

在这种情况下感兴趣的URLAction是:

1201 Initialize and script ActiveX controls not marked as safe(URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY)

本地计算机区域中此URLAction的默认设置为提示,而在所有其他区域中,禁用。仅当您将该设置更改为启用时,才会绕过提示。您无法使用Internet控制面板调整本地计算机区域的安全设置,因为此UI中仅显示其他四个区域。要更改本地计算机区域的设置,可以编辑注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0

将条目1201的值从 1 更改为 0

答案 2 :(得分:0)

由于应用程序“使用本地笔记本电脑上的htm文件”,您可以尝试切换到.hta应用程序。要快速测试,只需将* .html重命名为.hta;如果它'工作'添加一个合适的hta:应用程序标签。 To start