Выполнить процесс Windows с более низкими привилегиями

728
Guybrush

Здесь я вижу много тем о том, как можно запрограммировать программное обеспечение для запроса прав администратора в Windows, но в моем случае у меня есть установщик программного обеспечения, который работает с правами администратора, и в конце установки он должен выполнить другой процесс с ограниченными правами. (как зарегистрированный пользователь). И установщик, и установленные программы были созданы мной с помощью Delphi.

Я исследую эту тему в течение всего дня, и кажется, что это очень трудная задача, которую можно решить только с помощью языка программирования. Мой вопрос заключается в том, есть ли какая-либо команда Windows, которую я могу использовать для «вызова» исполняемого файла с более низкими привилегиями, или, возможно, конфигурацию манифеста, которую я могу включить в установленное программное обеспечение, чтобы избежать его запуска с правами администратора. Ну, любые идеи приветствуются!

Спасибо!

0
Если вы считаете, что вопрос не имеет отношения к делу или что-то еще, пожалуйста, объясните мне, почему, прежде чем понизить рейтинг. Спасибо! Guybrush 6 лет назад 0
Я видел этот вопрос раньше и попробовал некоторые решения, но безуспешно. Я сделаю новые тесты и дам вам знать. Спасибо! Guybrush 6 лет назад 0
Если вы исчерпали варианты, предложенные в предложенном дублирующем вопросе, [отредактируйте] свой вопрос, чтобы указать свои усилия и указать, почему он не является дубликатом. Twisty Impersonator 6 лет назад 0
Я достиг своей цели, запланировав задачу Windows (диспетчер задач), запустив и удалив ее в последовательности, используя команду [schtasks] (https://msdn.microsoft.com/en-us/library/windows/desktop/bb736357 ( v = vs.85) .aspx). Ни одно из решений, указанных в подобном вопросе, не сработало для меня. Пожалуйста, я должен отредактировать свой вопрос, чтобы включить мое решение? Guybrush 6 лет назад 0
Нет, вместо этого, пожалуйста, опубликуйте свое решение как ответ на свой вопрос. Рад, что вы нашли решение! Twisty Impersonator 6 лет назад 1
Почему этот совершенно законный вопрос был отвергнут? Jeez. Tiberiu-Ionuț Stan 6 лет назад 0

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

1
Guybrush

Я попробовал все решения, указанные в аналогичном вопросе, но безуспешно. Мой обходной путь - использовать команду schtasks внутри BAT-файла, чтобы запланировать задачу Windows, запустить и удалить ее в последовательности.

Сначала я создаю задачу вручную с помощью планировщика задач и экспортирую ее в файл XML (щелкните правой кнопкой мыши> Экспорт).

enter image description here

После того, как я создал BAT-файл для выполнения работы на основе XML-файла:

schtasks /create /tn "TempTask" /xml "c:\temp.xml" schtasks /run /tn "TempTask" schtasks /delete /f /tn "TempTask" 

Надеюсь, что это помогает другим людям с такой же проблемой! Спасибо!