Действительно ли возможно установить в Программные файлы с ограниченными полномочиями?

У меня есть приложение, которое будет развернуто как пакет MSI (созданный в WiX).

Я решаю, указать ли elevated или limited полномочия как требуется для установщика.

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

Теперь проблема:

  • Если я указываю поднятые полномочия, то пользователю предлагает контроль учётных записей пароль администратора во время установки. Это не требуется и препятствует тому, чтобы неадминистраторские пользователи установили.

  • Если я указываю ограниченные полномочия, то пользователю дарят диалоговое окно для выбора местоположения установки с Program Files быть значением по умолчанию. В случае, если они не изменяют местоположение установки (95% конечных пользователей, вероятно, не будут), затем установщик перестанет работать с сообщением, что они должны связаться с Администратором или запустить приложение как администратор. Если они запускают установщик как Администратор затем, они могут установить в Программные файлы без проблемы - но большинство пользователей не будет, вероятно, знать, как запустить установщик как администратор.

Я могу потенциально установить местоположение установки по умолчанию на, например, C:\Company name\Program\, но это кажется нестандартным мне, и большинству пользователей, вероятно, не понравится это (они, вероятно, привыкли к установке в Программные файлы).

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

7
задан Marek 6 May 2010 в 07:47
поделиться

3 ответа

Предложенное вами альтернативное расположение, непосредственно с диска C, скорее всего, также потребует повышенных привилегий. До Windows 7 я бы предложил использовать раннее пользовательское действие для изменения расположения по умолчанию для ограниченных установок. Обусловьте это свойством Privileged (или, возможно, AdminUser), проверьте, нужно ли устанавливать MSIUSEREALADMINDETECTION для вашего случая, и используйте что-то вроде [LocalAppDataFolder]Company\Product. К сожалению, такой подход приведет к тому, что пакет будет сложно установить для всех пользователей, поскольку вы должны предварительно поднять, а в ограниченном случае они все равно могут выбрать целевое местоположение, требующее поднятия. Они должны предварительно подниматься, потому что пакет должен быть помечен как не поднимающийся.

Если вы можете выбрать только Windows 7 и более поздние версии, вы можете условно установить MSIINSTALLPERUSER, чтобы отменить место установки и требование поднятия, и вместо этого установить для каждого пользователя. В этом сценарии пользователю может быть задан вопрос, установить ли пакет для всех пользователей (требуется повышение уровня) или только для себя. Пакет может быть помечен как требующий повышения, а установка MSIINSTALLPERUSER отменит это и пропустит приглашение UAC.

6
ответ дан 7 December 2019 в 07:41
поделиться

Запустите командную строку (cmd) от имени администратора.

Затем используйте команду msiexec для выполнения файла msi.

-2
ответ дан 7 December 2019 в 07:41
поделиться

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

Нет ничего плохого в том, чтобы попросить права администратора для установки чего-либо.

Либо пользователь сам будет иметь данные, так как он работает под ограниченной учетной записью в целях безопасности, либо программное обеспечение будет установлено ИТ-отделом его компании в любом случае.

3
ответ дан 7 December 2019 в 07:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: