программно запустить cmd.exe от имени администратора в Vista, C#
-
21-08-2019 - |
Вопрос
У меня есть проект установки и развертывания визуальной студии.Я добавил в него скрипт .cmd.Для запуска сценария потребуются права администратора.Когда пользователь нажимает на файл setup.exe, UAC запрашивает у пользователя права администратора.Поэтому я предположил, что все процессы, созданные и вызванные в setup.exe, будут выполняться с правами администратора.Поэтому я выполнил настройку вызова моего консольного приложения, которое содержит следующий код.
ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cmd.exe";
Process.Start(p1);
Так что это должно было работать, поскольку оно запускается под администратором.
Я хочу запустить cmd.exe через класс процесса C# от имени администратора. Я использую Windows Vista.
Я пытался не сработать!Что я могу сделать?
Решение
Попробуйте выполнить runas
команда:
...
using System.Diagnostics;
...
string UserName = "user name goes here";
ProcessStartInfo p1 = new ProcessStartInfo();
p1.FileName = "runas";
p1.Arguments = String.Format("/env /u:{0} cmd", UserName);
Process.Start(p1);
...
(И я не думаю, что вам нужен явный UseShellExecute)
Другие советы
Просто попробуйте это, у меня это сработало.
...
using System.Diagnostics;
...
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.Verb = "runas";
startInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
Process.Start(startInfo);
...
Ашутош