Я пытаюсь установить пакет на сервер Windows 2008. Пакет отказывается устанавливать. Я запустил установку со следующей командной строкой, переключенной на получение файла журнала:
/ lxv InstallLog.txt
Это ошибка, которую я вижу в файле:
Ошибка 2738. Не удалось получить доступ к среде выполнения VBScript для настраиваемого действия.
Я осмотрелся и нашел людей, говорящих, что это необходимо:
Regsvr32 vbscript.dll
Это связано с тем, что в системе Windows Server 2008 VBScript.dll не зарегистрирован для HKeyCurrent_User, а только для HKeyLocal_Machine из-за проблем с безопасностью. Это не совсем "пахнет".
Сначала я попытался запустить установку от имени администратора, но безуспешно.
Я написал небольшую программу на VBScript, которая отображает окно сообщения и работает правильно. В файле: Test.VBS у меня вот такое:
msgbox("Hello world")
Когда я дважды щелкаю по нему, появляется окно сообщения, подразумевающее, что VBScript действительно работает.
Я отключил UAC на машине, но все равно получаю сообщение об ошибке.
Как предложил Эван, я подтвердил следующую регистрацию:
HKCU\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}
Он существует и выглядит нормально.
В качестве еще одного теста я запустил Regsvr32 vbscript.dll из консоли администратора и попробовал снова. Все еще не повезло, я получаю те же ошибки, что и раньше.
VBScript для настраиваемых действий - дурной тон. Вы должны опровергнуть того, кто создал этот установочный пакет.
Вы дважды проверили, что следующий раздел реестра не существует:
HKCU\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}
Во-вторых, когда вы запускали команду «REGSVR32 vbscript.dll», вы делали это из повышенный командная строка?
Причина, по которой MSIEXEC не загружает VBscript.dll, зарегистрированный в HKEY_CURRENT_USER, заключается в том, что MSIEXEC работает с повышенными правами, и непривилегированный пользователь потенциально может зарегистрировать троянский конь VBscript.dll и использовать его в качестве механизма для выполнения кода в расширенном режиме. контекст. Это функция безопасности, а не ошибка.
Вы запускали установку как «администратор» или «администратор»? Если первое, то, вероятно, вмешивается UAC. Войдите в систему как администратор и перезапустите установку.
В наши дни эта проблема часто возникает на ServerFault. Если вы настаиваете на использовании UAC на (не Терминальном) сервере, то вход в систему с правами администратора - это самый простой способ избежать подобных проблем.
JR