【问题标题】: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" />
    

    【讨论】:

      【解决方案2】:

      创建一个包含所需命令(此处为“ipconfig /registerdns”)的脚本(.cmd 或 .bat),然后将其标记为“以管理员身份运行”。最后,从您的应用程序而不是原始命令运行此脚本。 这应该有助于标记为“以管理员身份运行”:How to code a BAT file to always run as admin mode?

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-12
          • 2015-04-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多