При попытке установить программу с помощью пакета установки установщика Windows (.msi) может возникнуть ошибка 2738 или 2739, и установка завершится ошибкой.if(typeof __ez_fad_position!=’undefined’){__ez_fad_position(‘div-gpt-ad-winhelponline_com-medrectangle-3-0′)};if(typeof __ez_fad_position!=’undefined’){__ez_fad_position(‘div-gpt-ad-winhelponline_com-box-3-0’)};
Ошибки 2738, 2739 возникают, если программа установки Windows Installer использует настраиваемые действия Windows Script (.vbs или .js), а среды выполнения VBScript или JScript не зарегистрированы на компьютере.
Код ошибки | Описание |
2738 | Не удалось получить доступ к среде выполнения VBScript для настраиваемого действия |
2739 | Не удалось получить доступ к среде выполнения JScript для настраиваемого действия |
Как было сказано ранее, указанные выше ошибки возникают, если установщику не удается запустить JScript / VBScripts, поскольку механизмы VBScript / JScript не работают должным образом. Наиболее вероятной причиной является подключение антивирусного программного обеспечения к механизму сценариев, чтобы заблокировать выполнение сценариев.
Например, антивирусное программное обеспечение McAfee заменяет ссылку vbscript.dll в реестре на свою DLL (суффикс номера версии может быть разным) ниже:if(typeof __ez_fad_position!=’undefined’){__ez_fad_position(‘div-gpt-ad-winhelponline_com-box-4-0’)};
C: \ Program Files \ Common Files \ McAfee \ SystemCore \ ScriptSn.20110222204811.dll
if(typeof __ez_fad_position!=’undefined’){__ez_fad_position(‘div-gpt-ad-winhelponline_com-medrectangle-4-0’)};
разрешение
Windows 10 и Windows 8, Windows 7 и более ранние версии
Чтобы автоматизировать следующие шаги по исправлению ошибки 2738 и / или 2739, загрузите и запустите соответствующее исправление реестра — Загрузите vbscript_jscript_2738_2739_fix.zip
Чтобы исправить ошибку Vbscript 2738 и / или ошибку JScript 2739 вручную:
- (Прежде чем продолжить, вы можете создать точку восстановления системы или сделать полную резервную копию реестра.)
Исправление ошибки VBScript 2738
- Запустите редактор реестра (regedit.exe)
- Перейдите в следующую ветку:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID \ {B54F3741-5B07-11cf-A4B0-00AA004A55E8} \ InprocServer32
- На правой панели дважды щелкните (по умолчанию) и установите для его данных значение:
C: \ Windows \ System32 \ vbscript.dll
- Если вы используете 64-битную версию Windows, дополнительно перейдите к следующему ключу:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Wow6432Node \ CLSID \ {B54F3741-5B07-11cf-A4B0-00AA004A55E8} \ InprocServer32
- На правой панели дважды щелкните (по умолчанию) и установите для его данных значение:
C: \ Windows \ SysWOW64 \ vbscript.dll
- Перейдите к следующим ключам (если они есть) в HKEY_CURRENT_USER
HKEY_CURRENT_USER \ SOFTWARE \ Classes \ CLSID \ {B54F3741-5B07-11cf-A4B0-00AA004A55E8} HKEY_CURRENT_USER \ SOFTWARE \ Classes \ Wow6432Node \ CLSID \ {B54F3741-5B07-11cf-A4B0-00AA004A55E8}
- Удалите каждый из указанных выше ключей.
- Закройте редактор реестра.
Исправление ошибки JScript 2739
- Запустите редактор реестра (regedit.exe)
- Перейдите в следующую ветку:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID \ {f414c260-6ac0-11cf-b6d1-00aa00bbbb58} \ InprocServer32
- На правой панели дважды щелкните (по умолчанию) и установите для его данных значение:
C: \ Windows \ System32 \ jscript.dll
- Если вы используете 64-битную версию Windows, дополнительно перейдите к следующему ключу:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Wow6432Node \ CLSID \ {f414c260-6ac0-11cf-b6d1-00aa00bbbb58} \ InprocServer32
- На правой панели дважды щелкните (по умолчанию) и установите для данных значение:
C: \ Windows \ SysWOW64 \ jscript.dll
- Перейдите к следующим ключам (если они есть) в HKEY_CURRENT_USER
HKEY_CURRENT_USER \ SOFTWARE \ Classes \ CLSID \ {f414c260-6ac0-11cf-b6d1-00aa00bbbb58} HKEY_CURRENT_USER \ SOFTWARE \ Classes \ Wow6432Node \ CLSID \ {f414c260-6ac0-11cf-b6d1-00aa00bbbb58}
- Удалите каждый из указанных выше ключей, если они существуют.
- Закройте редактор реестра.
Техническое объяснение ошибок 2738 и 2739
Цитата Раймонда Чена [Microsoft]if(typeof __ez_fad_position!=’undefined’){__ez_fad_position(‘div-gpt-ad-winhelponline_com-large-leaderboard-2-0’)};
В целях безопасности установщик Windows не загружает обработчики сценариев, зарегистрированные в HKEY_CURRENT_USER. В качестве хранилища с возможностью записи обычный пользователь может получить установку с повышенными правами для запуска маскировки своей библиотеки в качестве механизма сценария, если настраиваемое действие не было явно присвоено с помощью msidbCustomActionTypeNoImpersonate (0x0800). Это атака повышения привилегий; таким образом, установщик Windows возвращает сообщение об ошибке 2738 или 2739 для настраиваемых действий типа 6 и типа 5, соответственно, и возвращает ошибку Windows 1603, ERROR_INSTALL_FAILURE.
Убедитесь, что vbscript.dll и jscript.dll не зарегистрированы в HKEY_CURRENT_USER (HKCU), проверив ключи реестра ниже.
VBScript: HKCU \ SOFTWARE \ Classes \ CLSID \ {B54F3741-5B07-11CF-A4B0-00AA004A55E8}
JScript: HKCU \ SOFTWARE \ Classes \ CLSID \ {F414C260-6AC0-11CF-B6D1-00AA00BBBB58}
Удалите эти ключи, если они существуют в HKEY_CURRENT_USER (HKCU).СВЯЗАННЫЕ: не удается найти движок сценариев Vbscript и «нет механизма сценариев для .vbs»
Альтернативный метод для Windows 7, Vista и более ранних версий
- Откройте командную строку с повышенными привилегиями. Для этого нажмите кнопку «Пуск», выберите «Все программы», «Стандартные», щелкните правой кнопкой мыши «Командная строка» и выберите «Запуск от имени администратора».
- Выполните следующие команды одну за другой и нажмите Входить после каждой строки:
regsvr32 vbscript.dll regsvr32 jscript.dll
Для 64-разрядных выпусков Windows выполните эти две команды дополнительно:
c: \ windows \ syswow64 \ regsvr32.exe vbscript.dll c: \ windows \ syswow64 \ regsvr32.exe jscript.dll
Вы должны увидеть результат DllRegisterServer в filename.dll успешно завершен для каждой команды. Если вы получили ошибку 0×80004005, вероятно, это связано с тем, что вы пытаетесь зарегистрировать библиотеки DLL из обычного (без повышенных прав) окна командной строки.
- Введите Exit, чтобы закрыть окно командной строки.
СВЯЗАННЫЕ: Зарегистрируйте библиотеки DLL с повышенными правами с помощью контекстного меню
Метод Regsvr32.exe не удаляет избыточный раздел реестра HKCU. Если этот метод не помогает, следуйте описанному ранее методу редактирования реестра.