Установщик Windows с частями пользователя и администратора - PullRequest
2 голосов
/ 11 ноября 2011

Можно ли создать установщик MSI, который может выполнять установку для пользователя без прав администратора (копировать файлы в каталоги пользователей без прав администратора), а также копировать файлы в программные файлы или другие каталоги, предназначенные только для администратора? В NSIS существует плагин UAC, который позволяет выполнять некоторые шаги как обычный пользователь, а другие - с повышенными привилегиями. Существует ли такая вещь для MSI или есть какой-то способ сохранить исходный пользовательский контекст при получении прав администратора?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011

Нет, это невозможно.Установка выполняется либо в контексте пользователя, либо в контексте системы с повышенными правами.

Тем не менее, это не мешает вам копировать некоторые файлы в профиль пользователя.Эти файлы будут наследовать разрешения по умолчанию, установленные для папок.По умолчанию это полный доступ к пользователю, системе и группе администраторов.


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

Лучший способ преодолеть эту проблему - это установить файлы, которые вы хотитезайдите в профиль пользователя в Program Files.При первом запуске приложения оно копирует эти файлы в профиль пользователя.Таким образом, каждый пользователь многопользовательского компьютера сможет использовать ваше приложение.

Если эти данные должны быть общими для пользователей, рассмотрите возможность их установки в ProgramData, CommonAppDataFolder свойство .Таким образом, файлы будут видны и доступны для чтения всем пользователям компьютера.Однако только пользователь, установивший приложение, будет иметь права на запись, поэтому ваш установщик должен изменить разрешения для папки вашего приложения внутри ProgramData, чтобы предоставить права на запись другим пользователям.

2 голосов
/ 11 ноября 2011

Пожалуйста, посмотрите на эту статью:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd408068(v=vs.85).aspx

...