c# winforms 应用程序,运行 作为系统的 cmd 命令

c# winforms Application, run a cmd command as system

最近写了一个自动更换代理服务器的程序。此 运行s 作为用户级别的 Windows 表单托盘应用程序。 现在有一个请求给我带来了一些问题。应该执行 cmd 命令 "ipconfig /registerdns" 但这需要更高的权限。 我现在正在寻找一种在普通用户上下文中轻松执行此命令的方法。有没有办法把运行这个命令作为一个系统?或者还有其他可能吗?

或者是否有其他功能可以在没有管理员权限的情况下重新注册 dns?

我希望有一个简单的方法。

非常感谢!

据我所知,管理进程只能由另一个管理进程创建,但您仍然可以尝试将此参数添加到进程的启动信息中

StartInfo.Verb = "runas";

如果它不起作用,请将您的应用程序设置为 运行 始终作为管理员,方法是将 app.manifest 添加到您的项目并编辑第 19 行,如下所示。

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

创建包含所需命令(此处:"ipconfig /registerdns")的脚本(.cmd 或 .bat),然后将其标记为 "Run as administrator"。最后,运行 此脚本来自您的应用,而不是原始命令。 这应该有助于标记为 "Run as administrator":How to code a BAT file to always run as admin mode?

好的,所以我没有找到解决我以前的问题的方法,因为无法从用户应用程序启动提升的命令。但是我找到了一个powershell命令:Register-DnsClient。此命令执行相同的操作并且不需要提升的权限。唯一的缺点是它仅适用于 Windows 8.1 及更新版本。所以不支持Windows7。