代码之家  ›  专栏  ›  技术社区  ›  JimDel

将进程提升为以管理员身份运行不起作用

  •  2
  • JimDel  · 技术社区  · 16 年前

    将进程提升为以管理员身份运行不起作用。如果我从提升的命令提示符运行该应用程序,它运行良好。但我下面的代码没有。

    Process setupws = new Process();
    setupws.StartInfo.FileName = @"setupws.exe";
    setupws.StartInfo.Verb = "runas";
    setupws.StartInfo.UseShellExecute = true;
    setupws.Start();
    setupws.WaitForExit();
    

    setupws.exe文件运行良好,只是不作为管理员。

    谢谢

    另外,我还在app.manifest文件中使用了highestAvailable和requireAdministrator

    2 回复  |  直到 16 年前
        1
  •  1
  •   Remus Rusanu    16 年前

    您需要在清单中将安装程序标记为requestedExecutionLevel=requireAdministrator,请参阅 Create and Embed an Application Manifest (UAC)

    另外,requireAdministrator应该在setupws.exe的清单中。

        2
  •  1
  •   abatishchev Karl Johan    16 年前

    您是否以管理员身份运行应用程序并以这种方式进行了尝试?你可以这样做:

    using System.Security.Permissions;
    
    var mine = new EnvironmentPermission(PermissionState.Unrestricted);
    mine.AddPathList(EnvironmentPermissionAccess.AllAccess, Environment.CurrentDirectory);