VBScript运行时错误:ActiveX组件无法创建对象:'XStandard.MD5'

时间:2011-10-12 22:41:49

标签: vbscript

脚本可以在本地计算机上运行,​​但不能远程运行。任何的想法? 我收到VBScript运行时错误“ActiveX组件无法创建对象:XStandard.MD5”。

    strSource = "C:\WINNT"
    Set objFSO = CreateObject(Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strSource)
    Set colfiles = objFolder.Files

   For each file in colfiles
   Set objMD5 = CreateObject("XStandard.MD5")

6 个答案:

答案 0 :(得分:2)

转到DLL文件夹并在命令提示符>中使用regsrv32 XMD35.dll

http://www.xstandard.com/en/documentation/xmd5/

答案 1 :(得分:1)

如果要指示远程计算机实例化给定的ActiveX对象,则需要在调用CreateObject(progID, [serverName])函数时指定远程服务器的名称。

否则,脚本引擎会尝试从本地计算机实例化对象。

例如:

Set objMD5 = CreateObject("XStandard.MD5", nameOfYourServer)

当然,该组件必须在服务器上可用。

有关MSDN <{3}}的更多信息

答案 2 :(得分:1)

我不知道它是否与第2行的语法有关。你缺少一个开放的引用。你有:

Set objFSO = CreateObject(Scripting.FileSystemObject")

你应该:

Set objFSO = CreateObject("Scripting.FileSystemObject")

答案 3 :(得分:1)

我意识到这是一个老问题,但谷歌发送给我同样的问题。在我的例子中,这是一个32位与64位的问题 - 我需要使用32位版本的CScript来执行。

此处有更多详情http://blogs.msdn.com/b/helloworld/archive/2007/12/12/activex-component-can-t-create-object-when-creating-a-32-com-object-in-a-64-bit-machine.aspx

答案 4 :(得分:1)

XStandard.MD5是所有计算机中不标准的组件。它是需要安装的东西。但是,即使安装后您仍可能遇到相同的错误。这可能是因为您在64位系统中运行脚本。由于某种原因,64位wscript将不会使用xmd5.dll。但是,您可以通过将脚本文件关联以在32位版本的wscript上运行来制定解决方法。通过

  • 进入默认程序。 ( Windows 8 + 右键单击开始按钮区域[类别视图]单击程序,然后单击默认程序,然后将文件类型或协议与程序关联)( Windows 7 - 单击然后单击默认程序
  • 然后点击 vbs ,然后点击更改程序,将其更改为

      

    C:\ Windows \ SysWow64 \ Wscript.exe

    仅限64BIT注意

答案 5 :(得分:0)

正如dmogle在评论中所说,您需要确保该组件已安装在远程计算机上。假设您有权访问该计算机,请将dll下载到该计算机,然后运行命令regsvr32 XMD5.dll,如here所示。

另一方面,你的剧本看起来有点滑稽,最后几行是:

For each file in colfiles
Set objMD5 = CreateObject("XStandard.MD5")

这意味着您将为每个文件创建MD5对象的实例。我从来没有使用过有问题的组件,但我很确定你可能只想创建一个对象实例,然后多次调用该对象上的函数。所以我建议将这些行的顺序改为:

Set objMD5 = CreateObject("XStandard.MD5")
For each file in colfiles