如何将 Scripting.FileSystemObject 标记为安全的脚本?

How mark Scripting.FileSystemObject as safe for scripting?

简介:

我正在为 CNC 机床编程。确切地说是来自 Biesse 的 Rover。用于编程的软件的编辑器支持VBScript。 VBScript 用于实现条件语句和循环等。在软件说明中,我列出了 VBScript 中标记为不用于避免复杂化的所有语法:)

我当然想使用 VBScript :) 确切地说 - 打开 txt 文件并根据内容设置程序。

主要问题: VBScript 的所有语法都是有效的,例如:

Dim dic
Set dic = CreateInstance("Scripting.Dictionary")

编译,但是:

Dim fso
Set fso = CreateInstance("Scripting.FileSystemObject")

抛出 error/exepction:

ActiveX component can't create object: 'Scripting.FileSystemObject'

我尝试并检查了许多连接到未注册的 dll 等的解决方案。 一切似乎都有效并且没问题。我还检查了一个简单的脚本 .wsf

<package>
<job>
<script language="VBScript">
set fso = CreateObject("Scripting.FileSystemObject")
set fout = fso.CreateTextFile("c:\BiesseMacros\RemoteTest.txt", true)
fout.WriteLine Now
fout.Close
</script>
</job>
</package>

编译成功。在 4-5 台不同的 PC 上情况相同。

这一切似乎都与软件不接受未标记为可安全编写脚本和初始化的组件有关?可能吗?我认为这是在应用程序项目中设置的东西。应用程序位于无法连接到互联网的计算机上,适用于 Windows XP。我知道将此组件标记为安全是个坏主意,但我真的很想这样做。它将为我节省几个月的工作(和生活;)。

问题:

是否有可能以及如何将 Scripting.FileSystemObject 标记为安全脚本?

这个 link 帮助了我。 就我而言,我只需要在注册表中创建密钥

"Implemented Categories"

在HKCR\CLSID\"id's Scripting.FileSystemObject"

在这个密钥中,我创建了与 Scripting.Dictionary 相同的密钥:

瞧!

软件认为此对象是安全的。

多多指教!:

它可能对您的系统有害 - 因为它不应被标记为安全。这样,某些页面可以在不通知的情况下使用该对象来操作您的文件!它对我有用 - 因为 PC 没有互联网连接,这是欺骗第 3 方软件使用此对象的唯一方法!