Как запустить другое приложение в качестве администратора в Windows XP

StackOverflow https://stackoverflow.com/questions/4715876

Вопрос

Я использовал файл манифеста приложения, как описано здесь иметь часть моего приложения, работающего с повышенными привилегиями (которые ему нужны).
Таким образом, когда это необходимо, основная программа просто вызывает небольшую сборку, используя процесс. Зачатка, которая затем обрабатывает задачу, для которой требуются права администратора.

Однако как я могу сделать то же самое в 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 С учетными данными пользователя с административными привилегиями.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top