代码之家  ›  专栏  ›  技术社区  ›  Ken Pespisa

如何编译以管理员身份启动exe的程序[复制]

  •  0
  • Ken Pespisa  · 技术社区  · 14 年前

    可能重复:
    Elevating process privilege programatically?

    我想在.NET中构建一个控制台应用程序,它只运行另一个具有提升权限的程序。这样我就可以指向,比如说,一个install exe for Flash,向指向我的runasadmin exe的用户发送一个快捷方式,用户就可以更新Flash了。

    这是安全的,当然不是。但一想到要打上数百个用户的工作站,我们就开始寻找替代方案:)

    这可行吗?有人在这方面有经验吗?

    4 回复  |  直到 7 年前
        1
  •  2
  •   Will A    14 年前

    尝试Windows API调用“ CreateProcessWithLogonW

        2
  •  3
  •   Icemanind    14 年前

    正如您所知,Microsoft已经提供了一个命令行实用程序,可以以其他用户的身份运行程序,包括管理员: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/runas.mspx?mfr=true

    您可以创建一个快捷方式,使用适当的命令行参数执行RunAs,您的程序只需单击一下就可以执行。

        3
  •  1
  •   d4nt    14 年前

    这听起来像你在一个公司的It部门,在这种情况下,我想你可以创建广告帐户,在用户的机器上有管理员权限。完成后,您就可以创建一个.NET应用程序,P/调用它来 CreateProcessAsUser 在管理员帐户下启动所需的安装过程。

    here

        4
  •  1
  •   Pandacoon    14 年前
                System.Diagnostics.ProcessStartInfo processStartInfo = new System.Diagnostics.ProcessStartInfo("path", "args");
            processStartInfo.Verb = "runas";
    
            using (System.Diagnostics.Process process = new System.Diagnostics.Process())
            {
                process.StartInfo = processStartInfo;
                process.Start();
                process.WaitForExit();
            }