【问题标题】:c# winforms Application, run a cmd command as systemc# winforms 应用程序,以系统身份运行cmd命令
【发布时间】:2019-12-02 09:13:43
【问题描述】:
最近几天我写了一个程序来自动更改代理服务器。这在用户级别上作为 Windows 窗体托盘应用程序运行。
现在来了一个请求,这给我带来了一些问题。应该执行 cmd 命令“ipconfig /registerdns”,但这需要更高的权限。
我现在正在寻找一种在普通用户上下文中轻松执行此命令的方法。有没有办法将这个命令作为系统运行?还是有其他可能?
或者是否有其他功能可以在没有管理员权限的情况下重新注册 dns?
我希望有一个简单的方法。
非常感谢!
【问题讨论】:
标签:
c#
winforms
cmd
runas
【解决方案1】:
据我所知,管理进程只能由其他管理进程创建,但您仍然可以尝试将此参数添加到进程的启动信息中
StartInfo.Verb = "runas";
如果它不起作用,您可以将应用程序设置为始终以管理员身份运行,方法是将 app.manifest 添加到您的项目并编辑第 19 行,如下所示。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
【解决方案3】:
好的,所以我没有找到解决我以前的问题的方法,因为无法从用户应用程序启动提升的命令。但是我找到了一个powershell命令:Register-DnsClient。此命令的作用相同,并且不需要提升的特权。唯一的缺点是它仅适用于 Windows 8.1 和更新版本。所以不支持Windows 7。