Ошибка времени выполнения VBScript: компонент ActiveX не может создать объект: 'XStandard.MD5' - PullRequest
2 голосов
/ 13 октября 2011

Скрипт работает на локальном компьютере, но не удаленно. Любая идея? Я получаю ошибку во время выполнения 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 ]

2 голосов
/ 25 сентября 2014

Перейдите в папку DLL и используйте в командной строке > regsrv32 XMD35.dll

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

1 голос
/ 05 июня 2016

XStandard.MD5 - это компонент, который НЕ является стандартным для всех компьютеров.это то, что нужно установить.Однако даже после установки вы можете столкнуться с той же ошибкой.Это может быть потому, что вы запускаете скрипт в 64-битной системе.по какой-то причине 64-битный wscript не будет использовать xmd5.dll.однако вы можете обойти эту проблему, связав файлы сценариев для запуска в 32-битной версии wscript.

  • в ваших программах по умолчанию.( Windows 8 + Щелкните правой кнопкой мыши по области кнопки запуска [представление категории] Нажмите Программы, затем Программы по умолчанию, а затем сопоставьте тип файла или протокол с программой) ( Windows 7- нажмите затем Пусквыберите программы по умолчанию)
  • Затем нажмите vbs , затем нажмите Изменить программу и измените ее на

    C: \ Windows \ SysWow64 \ Wscript.exe

    ПРИМЕЧАНИЕ ТОЛЬКО НА 64BIT

1 голос
/ 17 марта 2014

Я понимаю, что это старый вопрос, но Google отправил меня сюда с той же проблемой.В моем случае это была проблема 32-битной или 64-битной версии - мне нужно было использовать 32-битную версию CScript для выполнения.

1 голос
/ 06 декабря 2012

Я не знаю, имеет ли это какое-либо отношение к синтаксису строки 2. вам не хватает открытой цитаты. У вас есть:

Set objFSO = CreateObject(Scripting.FileSystemObject")

Вы должны иметь:

Set objFSO = CreateObject("Scripting.FileSystemObject")
1 голос
/ 13 октября 2011

Если вы хотите указать удаленному компьютеру создание экземпляра данного объекта ActiveX, вам необходимо указать имя удаленного сервера при вызове функции CreateObject(progID, [serverName]).

В противном случае механизм сценариев пытается создать экземпляр объекта с локального компьютера.

Например:

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

И, конечно, компонент должен быть доступен на сервере.

Подробнее о CreateObject в MSDN

0 голосов
/ 13 октября 2011

Как говорит dmogle в своем комментарии, вам нужно убедиться, что компонент установлен на удаленном компьютере. Предполагая, что у вас есть доступ к этому компьютеру, загрузите на него dll и затем выполните команду regsvr32 XMD5.dll, как видно здесь .

С другой стороны, ваш скрипт выглядит немного забавно, последние строки twp:

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

Это означает, что вы будете создавать экземпляр объекта MD5 для каждого файла. Я никогда не использовал рассматриваемый компонент, но я уверен, что вы, вероятно, захотите создать только один экземпляр объекта и затем вызвать функции этого объекта несколько раз. Поэтому я бы предложил изменить порядок этих строк:

Set objMD5 = CreateObject("XStandard.MD5")
For each file in colfiles
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...