Как запустить другое приложение в качестве администратора в Windows XP
-
12-10-2019 - |
Вопрос
Я использовал файл манифеста приложения, как описано здесь иметь часть моего приложения, работающего с повышенными привилегиями (которые ему нужны).
Таким образом, когда это необходимо, основная программа просто вызывает небольшую сборку, используя процесс. Зачатка, которая затем обрабатывает задачу, для которой требуются права администратора.
Однако как я могу сделать то же самое в Windows XP?
Кажется, XP просто игнорирует этот манифест и запускает небольшую сборку в текущем пользовательском контексте.
Решение
Следующий код из здесь делает именно то, что мне нужно:
ProcessStartInfo processStartInfo = new ProcessStartInfo("path", "args");
processStartInfo.Verb = "runas";
using (Process process = new Process())
{
process.StartInfo = processStartInfo;
process.Start();
process.WaitForExit();
}
Так что на самом деле вам нужно установить «runas» на processstartinfo.verb. С прикрепленным манифестом этот код теперь отлично работает на Windows XP, Vista и 7.
Обновлять:
Смотрите также Этот ответ на аналогичный вопрос. Анкет Это в основном тот же код, просто используя аргументы.
Другие советы
Вы можете использовать runas
командование
Windows XP не имеет UAC.
Вам нужно позвонить Process.Start
С учетными данными пользователя с административными привилегиями.