Я пытаюсь установить MSI на компьютер с Windows Server 2012, который является частью моей лабораторной области. Я локальный администратор домена, но мне кажется, что мне не позволяют установить этот MSI.
Для пояснения, при попытке установить расширение git для Visual Studio (находится Вот) вошел в систему как пользователь домена, входящий в группу администраторов, я получаю следующую ошибку
Машина, сообщающая об ошибке, - это Windows Server 2012.
Я почти уверен, что это должно быть какое-то ограничение групповой политики? Ничего не будет установлено, если только это не уровень безопасности по умолчанию?
Для уточнения хотелось бы знать что мешает установить этот MSI-файл администратором домена?
Проведя время за изучением политики группы, насколько я мог судить, не было ничего важного. Затем я наткнулся на эта почта что предлагает попробовать запустить командную строку от имени администратора и запустить
msiexec /a install.msi
Казалось, это сработало, но работало очень быстро - на самом деле это не так. По прихоти я попробовал это в командной строке администратора.
msiexec /i install.msi
который сработал.
Я столкнулся с таким поведением, когда раньше установка MSI предотвращалась с помощью «Системный администратор установил политики для предотвращения этой установки». Я считаю, что это связано с политикой ограниченного использования программ Windows по умолчанию, и я видел ее как в Windows Server 2008 R2, так и в Windows Server 2012.
Вероятно, есть лучший способ изменить политику на основе графического интерфейса, но установка следующего ключа reg в качестве администратора на машине делает свое дело:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
"DisableMSI"=dword:00000000
Обычно это происходит из-за того, что групповая политика или локальная политика отключают установщик Windows.
Посмотрите на контроллер домена, если у вас есть GPO, отключающий «Установщик Windows»: Конфигурация компьютера> Административные шаблоны> Компоненты Windows> Установщик Windows> «Отключить установщик Windows».
Убедитесь, что для него установлено значение «Не настроено» или «Отключено».
Если вы не нашли его в объекте групповой политики, посмотрите локальные политики компьютера с помощью gpedit.msc.
Примечание: тот факт, что вы являетесь администратором домена, не имеет значения. Все зависит от области применения GPO.
У нас была такая же проблема при создании MSI с использованием IsCmdBld.exe
, но не при сборке из пользовательского интерфейса программы InstallShield.
При запуске установщика мы увидим ошибку, упомянутую OP, и журнал установки покажет: MSI_LUA: Invalid Descriptor Format.
Причина проблемы заключалась в том, что мы передавали значение ProductCode Guid в командную строку IsCmdBld.exe следующим образом: -z "ProductCode"="f176c219-dec0-4fa9-a373-94a711f28a3d"
.
Вы можете видеть, что указанное здесь руководство не окружено {
и }
.
Мы исправили это, передав руководство с скобками вокруг: -z "ProductCode"="{f176c219-dec0-4fa9-a373-94a711f28a3d}"
который работает должным образом и больше не отображает ошибку.
щелкните правой кнопкой мыши -> запустить от имени администратора
У меня не сработали ни msiexec, ни исправления реестра (даже после перезагрузки), но отключение контроля учетных записей пользователей (как было предложено Ха Ли в эта тема) и перезагрузка сделала свое дело.
У вас есть возможность отключить UAC через реестр, изменив DWORD
EnableLUA
из 1
к 0
в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system
. Вы получите уведомление о необходимости перезагрузки. После перезагрузки UAC отключен.