Эта установка не может работать с прямым запуском пакета msi

Обновлено: 21.11.2024

  • Сообщество Revenera
  • :
  • Установить щит
  • :
  • Форум InstallShield
  • :
  • Требовать, чтобы пользователи запускали setup.exe при попытке запустить msi
  • Отметить тему как новую
  • Отметить тему как прочитанную
  • Открыть эту тему для текущего пользователя
  • Подписаться
  • Отключить звук
  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

У меня есть базовый msi-файл, созданный с помощью InstallShield 2008. Когда пользователь пытается запустить msi напрямую, есть ли способ отобразить сообщение о том, что ему нужно запустить setup.exe? Я заметил в таблице строк, что есть строка с именем IDS_STANDARD_USE_SETUPEXE, которая гласит:

Эту установку нельзя запустить, напрямую запустив пакет MSI. Вы должны запустить setup.exe.

Любая помощь приветствуется.

УстановитьShield 2008

  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу
  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Отлично! Спасибо за быстрый ответ, Роберт!

  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Я знаю, что прошло несколько месяцев с тех пор, как я впервые разместил эту тему. Я реализовал ваше решение, и оно отлично работает, когда setup.exe запускается двойным щелчком по нему или когда он запускается из командной строки без передачи каких-либо аргументов в msi (т. е. без использования /v). Однако, если пользователь запускает setup.exe через командную строку и передает аргументы в msi, аргументы командной строки в Setup.ini игнорируются или перезаписываются.

Например, несмотря на то, что я указал USER_LAUNCHED_SETUPEXE=1 в свойстве аргументов командной строки MSI моего ism, выполнение следующего через командную строку отобразит мое диалоговое окно «setup.exe required»:

Есть ли способ избежать перезаписи аргументов командной строки, указанных в setup.ini? Я не хочу, чтобы пользователь задавал свойство USER_LAUNCHED_SETUPEXE в командной строке.

  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Роберт? Любой? Пожалуйста? Будем признательны за любую помощь.

джошстечный

  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Вы можете попробовать использовать свойство SETUPEXEDIR вместо пользовательского свойства для учета аргументов MSI, передаваемых через командную строку setup.exe. SETUPEXEDIR всегда будет передаваться при запуске из setup.exe.

  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу
  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

:confused:
Лично я думаю, что тот факт, что аргументы командной строки MSI, которые вы указываете в Setup.ini, перезаписываются при использовании параметра setup.exe /v, следует рассматривать как ошибку для IS 2009. Один Одной из новых функций IS 2009 является тот факт, что вы можете передавать несколько аргументов командной строки MSI, многократно используя параметр «/v». ИМХО, поскольку это так в 2009 году, аргументы, которые я указываю в Setup.ini, должны быть «первыми» «/v», и у пользователя все еще должна быть возможность добавлять аргументы командной строки MSI, используя дополнительные параметры «/v».

  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

joshstechnij написал:
Вы можете попробовать использовать свойство SETUPEXEDIR вместо пользовательского свойства для учета аргументов MSI, передаваемых через командную строку setup.exe. SETUPEXEDIR всегда будет передаваться при запуске из setup.exe.

Джош,
Вы уверены, что это так (SETUPEXEDIR ВСЕГДА будет передаваться в командную строку msiexec при запуске через setup.exe)? Исключений нет? :запутался:

  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Я воскрешаю эту ветку по причинам локализации. Язык по умолчанию в моем файле ism — английский. Когда я запускаю свой msi на неанглийской машине, предупреждение «setup.exe необходимо запустить» по-прежнему отображается на английском языке, хотя строка локализована в моем ism для каждого языка, который поддерживает мой установщик.

Как сделать так, чтобы в предупреждении отображался правильный язык?

Мне нужно решить эту проблему как можно скорее. Любая помощь приветствуется.

  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

У вас проблема с курицей и яйцом. Для отображения местного языка необходимо запустить MSI с использованием соответствующего свойства преобразования в командной строке: «msiexec.exe /i MyPackage.msi TRANSFORMS=1041.mst» (пример для японского языка).exe — это то, что InstallShield использует для определения языка и запуска соответствующей командной строки MSI.

  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу
  • Отметить как новое
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Ну, вам нужно написать пользовательское действие, которое могло бы определять язык системы (SystemLanguageID) и отображать сообщение на этом языке, а затем вызывать ЦС, когда вы обнаружите, что MSI не был запущен из приложения начальной загрузки.

Если все языки, поддерживаемые вашей установкой, используют общий набор символов, вы можете просто добавить свойство в таблицу свойств для каждого языка и написать требуемый ЦС в JScript/VBScript и отобразить значение свойства в сообщении. коробка. Я не думаю, что это сработает, если ваша кодовая страница по умолчанию использует однобайтовый набор символов, а системный язык — двухбайтовый.

что-то вроде приведенного ниже примера VBScript для myLocalizedMsgCA, а затем вызвать ЦС, когда вы обнаружите, что MSI был запущен без запуска установки:

SysLang = property("SystemLanguageID")
Выберите вариант SysLang
Case 1031 MsgBox property("MY_GERMAN_MSG")
Case 1036 MsgBox property("MY_FRENCH_MSG")
Case Else Свойство MsgBox("MY_ENGLISH_MSG")
Конец выбора

Сервер работает под управлением Windows Server 2008 R2, а клиенты — под управлением Windows XP SP3.

У меня есть несколько файлов в общем ресурсе NETLOGON сервера.

Если я войду в систему как администратор на клиентской рабочей станции и зайду в \\mydomain.local в проводнике, я смогу увидеть все папки и файлы. Я могу открывать файлы TXT. Я могу открывать и запускать BAT-файлы. Я могу открывать и запускать EXE-файлы. Однако я *не могу* открывать или запускать файлы MSI.

Если я пытаюсь запустить/открыть файл MSI, я получаю сообщение об ошибке:

Если я скопирую файл MSI на рабочий стол и запущу его, он запустится нормально.

Для разрешений общего доступа: «Все» имеют доступ на чтение. «Компьютеры домена» имеют доступ на чтение. «Администраторы» имеют доступ на чтение/изменение/полный доступ.

Для разрешений NTFS: см. прикрепленное изображение.

Почему я не могу запускать/открывать файлы MSI из общей сетевой папки?

Защитите свои конечные точки от киберпреступников

2022-03-24 14:00:00 UTC Веб-семинар Веб-семинар: Cisco — защитите свои конечные точки от кибер-преступников Подробности о событии Просмотреть все события

Force Flow пишет:

Согласно предложению Питера, похоже, что симптомы проявляются только в общем ресурсе NETLOGON. Они не появляются в отдельной и вновь созданной общей папке.

Начав с этого момента, я перешел к утилите «Управление общим доступом и хранилищем» и прекратил общий доступ к NETLOGON, а затем заново создал его.

После этого я смог запускать/открывать/выполнять файлы MSI.

28 ответов

Питер

Petes PC Repairs — поставщик ИТ-услуг.

обычно появляется, когда dfs играет вверх

Вы пробовали поделиться ими с обычного общего файлового ресурса?

Может показаться странным, но это проблема IE. Добавьте \\сервер в доверенную зону или зону интрасети, а затем понизьте эту зону.

Вы пробовали щелкнуть правой кнопкой мыши и нажать "разблокировать"?

Некоторые файлы MSI не поддерживают сеть, то есть они ищут локальные ресурсы для использования во время установки. Если бы вы были на этом сервере и запускали эти MSI, они бы работали нормально. Если бы MSI были на вашем локальном компьютере, они бы работали нормально, понимаете, к чему это приведет?

Скопируйте MSI на машину, на которую вы пытаетесь выполнить установку, и все будет в порядке.

BackupNinja пишет:

Некоторые файлы MSI не «осведомлены» о сети, что означает, что они ищут локальные ресурсы для использования во время установки. Если бы вы были на этом сервере и запускали эти MSI, они бы работали нормально. Если бы файлы MSI были на вашем локальном компьютере, они бы работали нормально, понимаете, к чему это приведет?

Скопируйте файл MSI на компьютер, на который вы пытаетесь выполнить установку, и все будет в порядке.

Копировать каждый файл на каждый рабочий стол нецелесообразно. Конечная цель состояла в том, чтобы снова заставить функцию установки программного обеспечения GPO работать.

Файлы MSI, которые я использовал, предназначались для Java, Flash и Adobe Reader.

peter написал:

обычно это происходит, когда dfs играет вверх

вы пробовали делиться ими с обычного общего доступа к файлам?

Если я создам новый общий ресурс и скопирую в него MSI, а затем перейду к \\server\test\file.msi, он откроется/запустится без проблем.

Вы пробовали Джереми5285, и я рекомендовал?

Jeremy5285 написал:

Вы пробовали щелкнуть правой кнопкой мыши и нажать "разблокировать"?

Эта опция появляется только при доступе к файлам во время использования сервера. Этот параметр не отображается при доступе к файлам с рабочих станций через общую папку.

В любом случае, это не имело никакого эффекта.

MCDI пишет:

Может показаться странным, но это проблема IE. Добавьте \\сервер в доверенную зону или зону интрасети, а затем понизьте эту зону.

Это не совсем так, так как IE так встроен в ОС. Я видел это и испытал это на себе, даже когда вы обращаетесь к нему через Пуск> Запуск от имени \\сервер\общий ресурс\application.msi, где зоны действительно играют роль. Он не позволил бы мне запустить его из-за безопасности. Как только я добавил его в «доверенную» зону, он позволил мне запустить его.

Это не совсем так, так как IE так встроен в ОС. Я видел это и испытал это на себе, даже когда вы обращаетесь к нему через Пуск> Запуск от имени \\сервер\общий ресурс\application.msi, где зоны действительно играют роль. Он не позволил бы мне запустить его из-за безопасности. Как только я добавил его в «доверенную» зону, он позволил мне запустить его.

В любом случае, к сожалению, в данной ситуации это не решение.

Похоже, файлы MSI являются единственным проблемным типом файлов. Другие типы файлов могут быть доступны и открыты без проблем. Это не вопрос «все или ничего», что странно.

Согласно предложению Питера, похоже, что симптомы проявляются только в общем ресурсе NETLOGON. Они не появляются в отдельной и только что созданной общей папке.

Установщик Windows – это основная служба, которая управляет установкой всего в Windows, включая приложения, функции и многое другое. Если по какой-то причине он сломается, вы застрянете с новыми установками и даже обновлениями приложений.

Установщик Windows (msserver) не работает

В этом посте мы поделимся списком кодов ошибок и их решениями, некоторые из которых указывают на наше существующее решение, и способами их решения.

1] Запустите средство устранения неполадок при установке и удалении программы

Первое, что мы рекомендуем, это запустить средство устранения неполадок при установке и удалении программы, чтобы исправить проблемы, которые блокируют установку или удаление программы из-за поврежденных разделов реестра. Эта программа исправит поврежденные ключи реестра в 64-разрядных операционных системах, которые контролируют данные обновления, проблемы, препятствующие полному удалению или обновлению существующих программ, а также проблемы, которые не позволяют удалить программу с помощью «Установки и удаления программ» (или «Программы и Функции) в Панели управления

2] Запустите службу установщика Windows

В строке "Выполнить" введите MSIExec и нажмите клавишу ВВОД.

Если вы видите окно установщика Windows, в котором рассказывается все о MSIExec, все в порядке.

Если вы получите сообщение об ошибке, возможно, вам придется запустить его вручную.

Щелкните правой кнопкой мыши на панели задач и выберите Диспетчер задач. Перейдите в Службы и найдите msserver. Запустите его.

Вы также можете запустить services.msc, чтобы открыть службы Windows, перейти к установщику Windows и перезапустить его.

3] Не удалось получить доступ к службе установщика Windows

Вы можете увидеть сообщение об отсутствии доступа к службе установщика Windows. Обычно это происходит, если механизм установщика Windows поврежден, неправильно установлен или отключен. Вам нужно будет исправить либо повреждение, либо исправить конфигурацию, либо включить ее. Связанный пост также решает проблему, из-за которой служба установщика Windows не может запуститься, и выдает сообщение Ошибка 5, доступ запрещен.

4] Проблема с этим пакетом установщика Windows

Если пакет установщика Windows сталкивается с нестабильным сетевым доступом в процессе удаления или установки, иногда может появиться ошибка, если вам не удастся успешно завершить процесс. Сообщение об ошибке может выглядеть следующим образом: «Существует проблема с этим пакетом установщика Windows. Не удалось запустить программу, необходимую для завершения этой установки. Обратитесь в службу поддержки или к поставщику пакета».

5] Установщик Windows продолжает появляться

Обычно установщик Windows или m siexec.exe запускается в фоновом режиме. Вы можете проверить в диспетчере задач в списке запущенных процессов. Однако, если вы видите, что он постоянно работает, а установщик Windows продолжает появляться, это означает, что он завис. Возможно, установка не может быть завершена, и это происходит в результате.

6] Не удалось открыть установочный пакет

Если вы не можете установить программное обеспечение, которое вы только что скачали из Интернета, и оно продолжает выдавать сообщение об ошибке «Не удалось открыть установочный пакет», возможно, это проблема безопасности. Windows часто блокирует приложения, загружаемые из Интернета, поскольку не доверяет им. Возможно, вам придется разблокировать его или отключить антивирус, чтобы исправить это.

7] Перерегистрация службы установщика Windows

Если ничего не работает, по нашему опыту лучше всего перерегистрировать службу установщика Windows. Причина, по которой он отлично работает, заключается в том, что он также устраняет проблемы с реестром и снова настраивает основные параметры.

Запустите командную строку с правами администратора. Введите следующие команды и нажимайте Enter после каждой.

Закройте командную строку, сохраните всю свою работу и перезагрузите компьютер.

Проверьте, не сталкиваетесь ли вы с проблемами установщика Windows.

ОС Windows поддерживает кэш установщика Windows. Любые файлы, которые вы устанавливаете, временно извлекаются здесь, а затем устанавливаются на ПК. Если вы удаляете файлы отсюда вручную или во время установки, или это делает любая другая программа, вы получите сообщение об ошибке.

Лори Кауфман

Лори Кауфман
Писатель

Лори Кауфман – специалист по технологиям с 25-летним опытом работы. Она была старшим техническим писателем, работала программистом и даже управляла собственным бизнесом в нескольких местах. Подробнее.

Если вам нужно установить программу от имени администратора, вы можете щелкнуть правой кнопкой мыши файл .exe и выбрать «Запуск от имени администратора». Однако эта опция недоступна для пакетов MSI. Мы покажем вам, как добавить параметр «Установить от имени администратора» для пакетов MSI.

Чтобы добавить параметр «Установить от имени администратора» в контекстное меню для пакетов MSI, щелкните правой кнопкой мыши кнопку «Пуск» и выберите «Выполнить» в меню команд, если вы используете Windows 8.1. Если вы используете Windows 7 или более раннюю версию, выберите «Выполнить» в меню «Пуск».

ПРИМЕЧАНИЕ. Вы также можете нажать клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить».

Введите «regedit» (без кавычек) в поле «Открыть» и нажмите «ОК».

Если появится диалоговое окно "Контроль учетных записей пользователей", нажмите "Да", чтобы продолжить.

ПРИМЕЧАНИЕ. Это диалоговое окно может не отображаться в зависимости от настроек контроля учетных записей.

Перейдите к следующему ключу:

Щелкните правой кнопкой мыши ключ оболочки и выберите «Создать | Ключ из всплывающего меню.

Новый ключ добавляется как подраздел оболочки. Переименуйте его в «runas» (без кавычек).

Щелкните правой кнопкой мыши значение по умолчанию на правой панели и выберите «Изменить» во всплывающем меню.

ПРИМЕЧАНИЕ. Вы также можете дважды щелкнуть значение по умолчанию, чтобы изменить его значение.

В диалоговом окне "Редактировать строку" введите "Установить от имени администратора" (без кавычек) в поле редактирования "Значение" и нажмите "ОК".

Теперь вам нужно добавить подраздел к ключу runas. Щелкните правой кнопкой мыши ключ runas и выберите «Создать | Ключ из всплывающего меню. Переименуйте подраздел «command» (без кавычек).

Выберите подраздел команды и дважды нажмите «По умолчанию» на правой панели, чтобы изменить его значение. В диалоговом окне «Редактировать строку» введите следующее в поле «Значение данных»:

Закройте редактор реестра, выбрав «Выход» в меню «Файл».

Теперь, если щелкнуть правой кнопкой мыши файл установочного пакета MSI, станет доступна опция Установить от имени администратора.

При выборе параметра «Установить от имени администратора» может отображаться диалоговое окно «Контроль учетных записей пользователей», как показано в начале этой статьи, в зависимости от настроек контроля учетных записей.

  • › Будущее программного обеспечения для Windows: что такое файл MSIX?
  • › Что означает XD и как вы его используете?
  • › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
  • › Как установить Google Play Маркет в Windows 11
  • › Как восстановить метки панели задач в Windows 11
  • › Почему прозрачные чехлы для телефонов желтеют?
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)

Читайте также: