请求的操作需要提升

时间:2014-09-01 07:04:10

标签: c#

我正在尝试从其他用户帐户名运行exe文件,它显示以下错误

    System.ComponentModel.Win32Exception: The requested operation requires an elevation
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start()
    at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)

这是我的代码

ProcessStartInfo pro = new ProcessStartInfo(application);
pro.UseShellExecute = false;
pro.Verb = "runas";
pro.WorkingDirectory = workingdirectory;
pro.RedirectStandardInput = true;
pro.RedirectStandardOutput = true;
pro.CreateNoWindow = true;

Process process = Process.Start(pro);

如何解决这个问题?

1 个答案:

答案 0 :(得分:14)

不幸的是,你无法做到

  • 以提升的权限和
  • 运行
  • 重定向输入/输出

同时

原因:

  • Verb仅在UseShellExecute = true时识别,但
  • 重定向IO需要UseShellExecute = false

更多信息:

我想在您的情况下,您将不得不跳过使用runas,而是确保您的应用程序已使用正确的用户帐户/权限启动。这应该有效,因为processes started by elevated processes "inherit" elevation