Я пытаюсь установить 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
Я столкнулся с таким поведением, когда установка 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.
Обычно это происходит из-за того, что групповая политика или локальная политика отключает установщик Windows.
Посмотрите на контроллер домена, если у вас есть объект групповой политики, отключающий «Установщик Windows»: Конфигурация компьютера> Административные шаблоны> Компоненты Windows> Установщик Windows> «Отключить установщик Windows».
Убедитесь, что для него установлено значение «Не настроено» или «Отключено».
Если вы не найдете его в объекте групповой политики, посмотрите локальные политики компьютера с помощью gpedit.msc.
Примечание: тот факт, что вы являетесь администратором домена, не имеет значения. Все зависит от области действия GPO.
У нас была точно такая же проблема при создании MSI с использованием IsCmdBld.exe
, но не при сборке из пользовательского интерфейса программного обеспечения InstallShield.
При запуске установщика мы увидим ошибку, указанную OP и установкой log покажет: MSI_LUA: недопустимый формат дескриптора.
Причина проблемы заключалась в том, что мы передавали значение ProductCode Guid в командную строку IsCmdBld.exe, например это: -z "ProductCode" = "f176c219-dec0-4fa9-a373-94a711f28a3d"
.
Вы можете видеть, что указанный здесь Guid не окружен {
и }
.
Мы исправили это, передав guid в скобках: -z " ProductCode "=" {f176c219-dec0-4fa9-a373-94a711f28a3d} "
, который работает должным образом и больше не отображает ошибку.
У нас была такая же проблема при создании MSI с использованием IsCmdBld.exe
, но не при сборке из пользовательского интерфейса программного обеспечения InstallShield.
При запуске установщика мы увидим ошибку, указанную OP, и в журнале установки будет показано: MSI_LUA: Invalid Descriptor Format.
Причина проблемы заключалась в том, что мы передавали значение Guid ProductCode в командную строку IsCmdBld.exe следующим образом: -z "ProductCode" = "f176c219-dec0-4fa9-a373-94a711f28a3d"
.
Вы можете видеть, что предоставленный здесь Guid не окружен {
и }
.
Мы исправили это, передав руководство в скобках: -z "ProductCode" = "{f176c219-dec0-4fa9-a373-94a711f28a3d}"
, который работает должным образом и работает. больше не отображать ошибку.
щелкните правой кнопкой мыши -> запустить от имени администратора
щелкните правой кнопкой мыши -> запустить от имени администратора
Ни msiexec, ни реестр исправления сработали для меня (даже после перезагрузки), но отключение контроля учетных записей пользователей (как было предложено Ха Ли в этой ветке) и перезагрузка сделали свое дело.
Ни msiexec, ни исправления реестра не помогли мне (даже после перезагрузки), но отключение управления учетными записями пользователей (как было предложено Ха Ли в этом потоке) и перезагрузка помогли.
У вас есть возможность отключить UAC через реестр, изменив DWORD
EnableLUA
от 1
до 0
в HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion polic ies system
. Вы получите уведомление о необходимости перезагрузки. После перезагрузки UAC отключен.
У вас есть возможность отключить UAC через реестр, изменив DWORD
EnableLUA
от 1
до 0
в HKEY_LOCAL_MACHINE ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Microsoft Windows CurrentVersion policy system
. Вы получите уведомление о необходимости перезагрузки. После перезагрузки UAC отключен.