На днях столкнулся с проблемой невозможности запуска любых скриптов vbs (Visual Basic Script) на компьютере с Windows 7. Как оказалось, проблема довольно распространённая и встречается во всех версиях Windows, начиная с XP и заканчивая Widows 8.
Проблема следующая: при попытке запустить любой vbs скрипт на компьютере появляется ошибка:
CScript Error: Can’t find script engine «VBScript»
или в русскоязычной версии Windows:
Ошибка CScript: Не удается найти исполняющего ядра «VBScript» для сценария
В первую очередь стоит проверить наличие файла cscript.exe в каталоге %Windir%system32 (обычно это c:Windowssystem32)
Далее нужно попробовать перерегистрировать библиотеку vbscript.dll, выполнив в командной строке (с правами администратора)
regsvr32 /s %SystemRoot%System32vbscript.dl
Если после перезагрузки проблема не пропадет, попробуйте в командной строке выполнить следующие команды (перерегистрируем все библиотеки, необходимые для работы скриптов Visual Basic на компьютере):
regsvr32 atl.dll regsvr32 jscript.dll regsvr32 dispex.dll regsvr32 scrrun.dll regsvr32 scrobj.dll regsvr32 vbscript.dll regsvr32 msxml3.dll regsvr32 ole32.dll regsvr32 oleaut32.dll wscript /regserver
Довольно часто проблема, связанная с невозможностью выполнение vbs скриптов вызвана некорректным удалением антивируса. Дело в том, что некоторые антивирусы при установке в систему меняют в реестре ключ, указывающий на библиотеку vbscript.dll, прописывая вместо него свою библиотеку. Т.е. перед запуском любого vbs скрипта сначала его код проверяет на безопасность специальный модуль антивируса, и лишь затем код передается на выполнение библиотеке vbscript.dll . Таким образом антивирус получает контроль над выполнением всех vbs скриптов на машине.
При корректном удалении антивируса значение ключа должно возвращаться на стандартное, но некоторые антивирусы (часто этим грешил антивирусы McAfee, AVAST и продукты AVP Лаборатории Касперского) «забывают» это сделать, либо проблему может создать сам пользователь, некорректно удалив антивирус (не стандартной uninstall — процедурой)
Например, такое значение примет этот ключ реестра при установке на компьютере антивируса McAfee.
C:Program FilesCommon FilesMcAfeeSystemCoreScriptSn.20130508143011.dll
Чтобы восстановить начальные настройки, откройте редактор реестра и перейдите в раздел HKEY_CLASSES_ROOTCLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8}InprocServer32. Ключ по умолчанию (Default) не должен быть пустым или указывать на отличную от vbscript.dll библиотеку. Если это не так, поменяйте его значение на путь к библиотеке vbscript.dll (по умолчанию это C:Windowssystem32vbscript.dll)
Совет. Если при попытке сохранить изменения в реестр появляется ошибка доступа «Не удается изменить… Ошибка при записи нового значения параметра» или «Error Editing Value», нужно предоставить своей учетной записи права на модификацию данной ветки реестра (ПКМ по ветке InprocServer32 ->Permission)
Можно просто сохранить следующий текст в файл с расширением reg и импортировать его в реестр:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTCLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8}InprocServer32]
@=»C:\Windows\system32\vbscript.dll»
Совет. Все сказанное выше относится и к ветке HKEY_CLASSES_ROOTWow6432NodeCLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8}. В разделе InprocServer32 в качестве значения по умолчанию также должно быть прописано C:Windowssystem32vbscript.dll
Думаю, несмотря на все большее распространение в массы сценариев на Powershell , большинство системных администраторов и разработчиков ПО еще долго не смогут отказаться от накопленного багажа различных скриптов автоматизации на vbs, так что описанная проблема и методы ее решения будут актуальными еще долгое время.
- Remove From My Forums
-
Question
-
Подскажите из-за чего проблема.
Есть программа MediaMonkey (mediamonkey.com), для расширения функционала она использует скрипты VBS.
Но при инициализации скриптов на моем компьютере выдается ошибка:
A script engine for the specified language can not be created.
При чем скрипты не исполняются не только из MM. К примеру вот простой скрипт выводящий версию VBS (http://www.happymonkeying.com/forum/Test_VBscript.vbs) спокойно запускается и выводит версию через cmd, но в то же время этот же скрипт скомпилированный в exe
уже не работает (http://www.happymonkeying.com/forum/Test_VBscript.exe).
————
C:UsersUser>C:UsersUserDesktopTest_VBscript.vbs
Сервер сценариев Windows (Microsoft R) версия 5.8
c Корпорация Майкрософт (Microsoft Corp.),1996-2001.
Все права защищены.
VBScript Version: 5.8.16978
———-
Пробовал перерегистрировать библиотеки как указано в статье: http://support.microsoft.com/kb/949140
Не помогло.Windows 7 x64 SP1
Internet Explorer 9
Answers
-
Ура! Всем спасибо все свободны!
[HKEY_CLASSES_ROOTWow6432NodeCLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8}InprocServer32] @="C:\Program Files (x86)\Kaspersky Lab\Kaspersky Internet Security 2011\scrchpg.dll" "ThreadingModel"="Both"
Вот в чем была гадость.
Отдельное спасибо за совет с прокмоном!
Короче для решения проблемы необходимо чтобы во всех 3 ветках:[HKEY_CLASSES_ROOTWow6432NodeCLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8}] [HKEY_CLASSES_ROOTWow6432NodeCLSID{B54F3742-5B07-11cf-A4B0-00AA004A55E8}] [HKEY_CLASSES_ROOTWow6432NodeCLSID{B54F3743-5B07-11cf-A4B0-00AA004A55E8}]
в разделе InprocServer32 было прописано значение по-умолчанию:
C:WindowsSysWOW64vbscript.dll
и в:
[HKEY_CLASSES_ROOTCLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8}] [HKEY_CLASSES_ROOTCLSID{B54F3742-5B07-11cf-A4B0-00AA004A55E8}] [HKEY_CLASSES_ROOTCLSID{B54F3743-5B07-11cf-A4B0-00AA004A55E8}]
в разделе InprocServer32 было прописано значение по-умолчанию:
C:Windowssystem32vbscript.dll
Возможно так же потребуется сделать как указано в этой статье: http://support.microsoft.com/kb/949140
-
Marked as answer by
Monday, August 15, 2011 1:24 PM
-
Marked as answer by
-
#1
Проблемы:
— при запуске драйверпака DriverPack Solution (основанного на сценарии HTA) открывается белое окно, интерфейс неактивен.
— при запуске сценариев JScript получаем сообщение: «Не удается найти исполняющего ядра JScript для сценария».
— при запуске сценариев VBScript получаем сообщение: «Не удается найти исполняющего ядра VBScript для сценария».
Решение:
1. Зарегистрировать системные библиотеки VBScript.dll и JScript.dll
— Запустите командную строку «от имени администратора»:
нажмите пуск -> введите CMD -> нажмите правой кнопкой мыши по найденному пункту CMD.exe и выберите «запуск от имени администратора»
— Введите команды (после каждой строки нажимайте ENTER)
regsvr32.exe VBSCRIPT.DLL
regsvr32.exe JSCRIPT.DLL
2. Если проблема не была устранена:
— проверьте системный диск на наличие ошибок;
— проверьте целостность и выполните восстановление системных файлов из системы или из среды восстановления;
— перезагрузите ПК;
— выполните п.1.
Если схожие проблемы возникают при работе с другими библиотеками,
выполните скрипт регистрации системных библиотек, следуя всем данным по ссылке рекомендациям.
Частые причины проблемы:
— вирусное заражение;
— некорректное удаление антивирусного продукта (некоторые антивирусы регистрируют свою версию библиотеки, чтобы перехватывать вызовы на исполнение файлов .VBS, .JS, после чего возвращают управление оригинальной библиотеке);
— повреждение системных файлов.
Последнее редактирование: 8 Май 2014
Т.к. антивирусы должны проверять выполняющиеся скрипты на предмет заразы, то они делают хитрую вещь — они подменяют библиотеку Windows, отвечающую за обработку VBScript на свою. Побочный эффект — после неправильного удаления такого антивируса, система не может выполнять скрипты, т.к. файла от антивируса уже нет, а запись в реестре не изменена на старую. Побочный эффект 2 — не работают некоторые программы, не работает активация системы, не открываются HTTPS шифрованные страницы, google тоже не открывается, и т.п. В общем активность похожа на проделки зловредной программы. Поиск вирусов не дал никакого эффекта.
При выполнении VBS скриптов выходит одно из сообщений:
Ошибка Cscript: Не удается найти исполняющего ядра VBScript для сценария
или
CScript Error: Can’t find script engine «VBScript» for script
Вначале надо проверить, что файл cscript.dll лежит в c:windowssystem32. Но если вы уже запускали sfc /scannow, то скорее всего он там и лежит.
Далее надо идти в реестр и изменить в разделе
HKEY_CLASSES_ROOTCLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8}InprocServer32
параметр «По умолчанию» на
C:Windowssystem32vbscript.dll
В моем случае там был прописан путь на DLL обработчик от антивируса McAfee.
В аттаче файлик для быстрой правки реестра.
- Remove From My Forums
-
Общие обсуждения
-
При запуске Windows Installer CleanUp Выдает сообщение:
«Не удается найти исполняющего ядра vbscript для сценария «С:UsersAcerAppDataLocalTempIXP000.TMPStartMsi.vbs».
Windows 7 домашняя расширенная версия
Как решить данную проблемку? Заранее спасибо!
-
Изменен тип
4 августа 2010 г. 10:22
нет реакции -
Изменен тип
Nikita PanovModerator
24 сентября 2010 г. 8:03
re-open -
Перемещено
Nikita PanovModerator
12 октября 2010 г. 7:52
VBS (От:Windows 7) -
Изменен тип
Nikita PanovModerator
18 ноября 2010 г. 15:09
нет реакции
-
Изменен тип