C# 正在使用uac进程提示输入uac

C# 正在使用uac进程提示输入uac,c#,console-application,uac,C#,Console Application,Uac,我正在尝试在控制台应用程序中运行exe。我被提示UAC输入管理员凭据。问题是我只有读取和执行权限。我无法授予完全权限,因为它位于服务器上 using (Process process = new Process()) { process.StartInfo.Verb = "runas"; process.StartInfo.FileName = ImgToDjvuPath; process.StartInfo.Arguments = string.Format("\"{0

我正在尝试在控制台应用程序中运行exe。我被提示UAC输入管理员凭据。问题是我只有读取和执行权限。我无法授予完全权限,因为它位于服务器上

using (Process process = new Process())
{
    process.StartInfo.Verb = "runas";
    process.StartInfo.FileName = ImgToDjvuPath;
    process.StartInfo.Arguments = string.Format("\"{0}\" -profile \"{1}\" \"{2}\"  \"{3}\"", ImgToDjvuPath, "fine200up", localNewDjvuFile, localNewDjvuFile);
    process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    process.StartInfo.CreateNoWindow = true;
    process.Start();
    process.WaitForExit(10 * 60 * 1000);

}
我希望能够运行这段代码,让它在没有uac提示的情况下工作


这就是为什么我不喜欢堆栈溢出,你问一个特定的问题,很少得到一个特定的答案。然后因为提出了一个有效的问题而被扣分。我发帖后大约两分钟就想出来了。多亏了那些真正试图提供建设性帮助和帮助的人。

如果您想启动一个新流程,并且希望流程以管理员身份运行,您需要RunAs动词

仅当流程调用程序没有管理权限时,才会显示UAC提示

对于您的情况,如果您不希望流程以管理员的身份执行,则应该从代码中删除以下行:

process.StartInfo.Verb = "runas";

这不是某个windows设置吗?例如,如果不希望实用程序以管理员身份执行,为什么要使用runas谓词?如果没有管理员权限,则无法运行类似于管理员的操作。如果可执行文件需要提升才能运行,则必须从已具有提升的进程中执行可执行文件,或者需要在提示时手动提升进程。事实并非如此,读和执行应该足够了