我正在尝试从其他用户帐户名运行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);
如何解决这个问题?
答案 0 :(得分:14)
不幸的是,你无法做到
同时
原因:
Verb
仅在UseShellExecute = true
时识别,但UseShellExecute = false
。更多信息:
我想在您的情况下,您将不得不跳过使用runas
,而是确保您的应用程序已使用正确的用户帐户/权限启动。这应该有效,因为processes started by elevated processes "inherit" elevation。