Можно ли повысить разрешение программы в Windows без использования «Запуск от имени администратора»?

801
billoreid

У меня есть MSI, который должен работать с разрешениями администратора. Этот установщик выполнит некоторые административные действия и в конечном итоге создаст ярлык на рабочем столе пользователя. Когда я устанавливаю установщик «Запуск от имени администратора», MSI фактически запускается под профилем учетной записи администратора. Ярлык размещается под рабочим столом администратора, а не под рабочим столом пользователя.

Можно ли запустить установщик с повышенными разрешениями (не «Запуск от имени администратора»), который будет запрашивать учетные данные администратора, но при этом запускать установщик в профиле пользователя без прав администратора, чтобы ярлыки, новые папки, новые файлы и т. Д. Помещались в местоположение пользователя без прав администратора?

3
Насколько я знаю, «запуск с повышенными правами» и «запуск от имени администратора» - это просто разные способы сказать одно и то же. Одна вещь, которую я знаю, работая над установщиком, это то, что исполняемые файлы, имена которых содержат «setup» или «install» (или локализованный эквивалент), будут автоматически запускаться с повышенными разрешениями только из-за того, что должны делать установщики. RobH 9 лет назад 0
«Запуск от имени администратора» повышает уровень процесса и запускает процесс от имени другого пользователя. Так что да, есть разница, даже если вы являетесь администратором, вам нужно время от времени поднимать процесс. Ramhound 9 лет назад 0
Почему пользователь без прав администратора пытается запустить MSI, которая требует повышения прав? kreemoweet 9 лет назад 1
@Ramhound - То есть, вы говорите, что повышение уровня просто означает запуск процесса как другого пользователя с правами администратора? billoreid 9 лет назад 0
@kreemoweet - программное приложение может быть запущено без прав администратора, но для установки всего, что нужно программному обеспечению, требуются права администратора. Поэтому мне нужен админ для установки, но пользователь может запустить программу из своего профиля. billoreid 9 лет назад 0
@billoreid Да, просто случается так, что если пользователь является членом группы администраторов, то «другой пользователь», с которым он работает, является тем же именем пользователя и профилем пользователя. Это все еще считают "другим пользователем", и у этого есть тонкие побочные эффекты. Например, сопоставленные диски исчезают для процесса с повышенными правами, это происходит потому, что сопоставленные диски являются «для каждого пользователя» и поскольку вы работаете как «другой пользователь (даже если у него одно и то же имя пользователя)», сопоставления не существуют. Scott Chamberlain 9 лет назад 1
@billoreid - Где я это сказал? Я сказал «запускать от имени администратора», и это то, что вы сказали в своем вопросе, - это не то же самое, что повысить привилегию процесса. Один запускает процесс с повышенными привилегиями как другой пользователь. Другой повышает уже существующий процесс с использованием разрешений другого пользователя с более высокими разрешениями. Они похожи, но есть разница между двумя действиями. Ramhound 9 лет назад 0
@Ramhound - Я так и думал, но как это сделать в Windows? Как я могу запустить процесс с повышенными разрешениями без запуска процесса от имени другого пользователя? Думаю, мне следует сменить свой титульный вопрос на этот, так как это действительно то, что я спрашиваю. billoreid 9 лет назад 0
@billoreid - Пользователь, выполняющий процесс, должен иметь эти повышенные привилегии, чтобы повысить уровень процесса как этого пользователя вместо другого пользователя. Ramhound 9 лет назад 1

1 ответ на вопрос

1
JSanchez

You have two options you could visit.

  1. Find out if the MSI supports the ALLUSERS property, which would do just that: place shortcuts into all users' desktop. Probably the safest and fastest way to implement your deployment.
  2. Modify Aaron Margosis' MakeMeAdmin script, which temporarily adds a user to the "Administrators" group, and removes them as soon as the program launches. This requires two password entries, though: one by the Administrator and one by the user you just elevated to a local admin.

Hope that helps.

# 1 - это то, что я в идеале хотел бы сделать, но для установки действительно требуются права администратора, поскольку он устанавливает другое программное обеспечение и службу Windows. # 2 выглядит очень хорошим вариантом, который требует минимального участия реального администратора. billoreid 9 лет назад 0