2017-02-01 8 views
0

Я создаю клиентское приложение. Net windows с соответствующей программой установки MSI.Как работает InstallAllUsers

Как опционные InstallAllUsers (Установка для «всех» или «только меня») вариант работы технически:

Таким образом, если пользователь выбрал для установки с помощью «только я» вариант, это означает, что что двоичные файлы доступны только этому пользователю? И как это делается? И это программа установки, которая выполняет эти ограничения, или я должен как разработчик что-то сделать в MSI для реализации этих ограничений?

Благодаря Джихад

ответ

0

Вопрос сформулирован в терминах проектов установки Visual Studio, которые скрывают все основные манипуляции с свойствами, которые продолжаются. Проекты VS-установки не используют MSIINSTALLPERUSER, только ALLUSERS. Это еще более усложняется, потому что для каждой установки Everyone устанавливаются ALLUSERS в 2, что даже не обеспечивает принудительное выполнение каждой установки, поскольку это зависит от прав на установку пользователя. Вообще говоря, когда привилегированный пользователь устанавливает установку Everyone, он будет делать так, как вы ожидали. Однако непривилегированный пользователь получит установку с некоторым перенаправлением из-за способа создания MSI.

А на пользователя «Just me» будет установлен продукт только для этого пользователя. Если вы вошли в систему с другой учетной записью, вы не увидите ее в программах &. Ярлыки для приложений не будут видны, потому что они будут только в профиль пользователя установки. Файлы и элементы реестра будут доступны для повышенных администраторов (потому что все файлы), но в целом другие файлы пользователей и записи реестра не будут доступны другим ограниченным пользователям.

Если вам необходимо установить продукт, доступный для всех пользователей системы, и который устанавливает файлы в такие папки, как папки ProgramFiles и CommonFiles, или записывает записи в HKLM, вам потребуется установка Everyone, требующая установки пользователь должен быть привилегированным.

0

Полный ответ зависит от версии Windows, вы ориентируетесь и какой механизм установки использует. Более старый и менее мощный механизм использует только ALLUSERS property и не очень хорошо работает на практике, поскольку автору приходится вручную перенаправлять ресурсы, которые в противном случае были бы установлены для каждой машины. Для более нового механизма требуется, чтобы Windows 7 или более поздняя версия использовала MSIINSTALLPERUSER property для запроса автоматического перенаправления установленных ресурсов на места для каждого пользователя. См. Single Package Authoring.

Имея это в виду, короткие ответы на ваши последующие вопросы для «просто меня» установки являются:

  • файлы приложения устанавливаются в папки для записи пользователем, и обычно видимые только для этого пользователя ,
  • Регистрация идет в HKCU вместо HKLM.
  • Приложению, возможно, придется учитывать обе потенциальные местоположения. Если это хорошо написано, это не должно прикладывать никаких дополнительных усилий, но обязательно тщательно протестируйте приложение в обеих установленных конфигурациях.
+0

Спасибо за ответ. Таким образом, это означает, что если для этой MSI нет записей в реестре, и если в приложении не выполняется запись в файлы, установка фактически будет работать для всех пользователей, которые имеют доступ к чтению в папку файлов приложений (как правило, Program Files), даже если установка была выполнена с выбранной опцией «Just Me» –

+0

... Кроме того: в файле проекта, который создает MSI, я могу указать, какие ключи реестра необходимо создать.И если я добавлю ключи реестра для HKLM и HKCU, тогда он будет создавать записи реестра, и это не зависит от того, выбрал ли я «Все пользователи» или «Только я», –

 Смежные вопросы

  • Нет связанных вопросов^_^