Microsoft говорит, что это какая-то проблема с зависимостями: http://support.microsoft.com/kb/194801
Поскольку он работает, когда вы запускаете объект в IDE, у вас есть четыре возможности:
- Сама DLL ActiveX не находится в системном пути.
- DLL ActiveX зависит от чего-то другого, чего нет в системном пути.
- После регистрации dll она как-то помечается как требующая повышенной безопасности для запуска
- После регистрации dll для запуска требуется повышенная безопасность.
Я бы попытался открыть командную строку от имени администратора, а затем запустить файл VBScript, который запускает объект. Если это работает, то это означает, что проблема №3 или №4. Если это не так, то это означает # 1 или # 2.
Вы можете исключить # 2 и # 4, если DLL-библиотека ActiveX не имеет внешних зависимостей.
Далее, я посмотрел бы в своем журнале событий, чтобы увидеть, регистрировались ли в Windows какие-либо другие ошибки по этому поводу.
ОБНОВЛЕНИЕ
Только что нашел другую возможную причину. Если DLL ActiveX является 32-разрядным, то сценарий должен использовать 32-разрядную версию обработчика сценариев для запуска; в противном случае он выдаст эту ошибку, потому что механизм сценариев по умолчанию (x64 на этом компьютере) буквально не может найти dll.
Полагаю, что если вы используете \ windows \ system32 \ cscript.exe для запуска вашего vbscript, то все будет в порядке.