请求的操作需要提升

本文关键字:操作 请求 | 更新日期: 2023-09-27 18:20:07

我正试图从另一个用户帐户名称运行一个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);

如何解决此问题?

请求的操作需要提升

不幸的是,您无法进行

  • 使用提升的权限运行,并且
  • 重定向输入/输出

同时。

原因:

  • Verb仅在UseShellExecute = true时被识别,但是
  • 重定向IO需要CCD_ 3

更多信息:

  • 提升特权;t使用UseShellExecute=false

我想在您的情况下,您将不得不跳过使用runas,而是要确保您的应用程序已经使用正确的用户帐户/权限启动。这应该是可行的,因为由提升的进程启动的进程"继承"了提升。