Повышение уровня процесса для запуска от имени администратора не работает

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

  •  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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top