Повышение уровня процесса для запуска от имени администратора не работает
-
05-07-2019 - |
Вопрос
Повышение уровня процесса для запуска от имени администратора не работает.Если я запускаю это приложение из командной строки с повышенными правами, оно работает нормально.Но мой приведенный ниже код этого не делает.
Process setupws = new Process();
setupws.StartInfo.FileName = @"setupws.exe";
setupws.StartInfo.Verb = "runas";
setupws.StartInfo.UseShellExecute = true;
setupws.Start();
setupws.WaitForExit();
Файл setupws.exe запускается нормально, просто не от имени администратора.
Что я делаю не так?
Спасибо
PS.Я также использовал highestAvailable и requireAdministrator в своем файле app.manifest
Решение
Вам необходимо пометить ваш установщик как requestedExecutionLevel level=requireAdministrator в манифесте, см. Создайте и внедрите манифест приложения (UAC).
PS.Требуемый администратор должен быть в манифесте setupws.exe.
Другие советы
Запускали ли вы свое приложение от имени администратора и пробовали ли его таким образом?Вы могли бы сделать что-то вроде:
using System.Security.Permissions;
var mine = new EnvironmentPermission(PermissionState.Unrestricted);
mine.AddPathList(EnvironmentPermissionAccess.AllAccess, Environment.CurrentDirectory);