Tag: elevated privileges

如何使控制台应用程序始终以管理员身份运行?

我有一个开发的控制台应用程序,由erp软件调用。 他们在erp中调用我的应用程序,当他们这样做时,我总是会得到与执行权限不足相关的错误。 我已经检查了所有用户的exe属性中的“以管理员身份运行此程序”复选框,但结果是相同的。 我已经阅读了一些有关添加清单的内容,该清单将为uac对话框提供应用程序提示,但这不是我想要的,因为应用程序将从服务器上的erp调用,客户端将无法在服务器上看到对话框。 有人可以解释我如何让这个控制台应用程序始终以管理员身份运行?

提升权限不适用于UseShellExecute = false

我想启动一个子进程(实际上是相同的控制台应用程序),具有提升的权限但隐藏窗口。 我做下一个: var info = new ProcessStartInfo(Assembly.GetEntryAssembly().Location) { UseShellExecute = true, // ! Verb = “runas”, }; var process = new Process { StartInfo = info }; process.Start(); 这工作: var identity = new WindowsPrincipal(WindowsIdentity.GetCurrent()); identity.IsInRole(WindowsBuiltInRole.Administrator); // returns true 但UseShellExecute = true会创建一个新窗口,我也无法重定向输出。 所以我下次做的时候: var info = new ProcessStartInfo(Assembly.GetEntryAssembly().Location) { RedirectStandardError = true, RedirectStandardOutput = true, UseShellExecute […]