【问题标题】:How to start a process with admin rights如何以管理员权限启动进程
【发布时间】:2012-07-11 10:52:07
【问题描述】:

如何在 c# 中以管理员权限启动进程? 我正在使用代码,

Process p = new Process();
                    p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    p.StartInfo.FileName = path;
                    p.StartInfo.UseShellExecute = true;
                    p.StartInfo.RedirectStandardOutput = true;
                    p.StartInfo.RedirectStandardError = true;
                    if (System.Environment.OSVersion.Version.Major >= 6)
                    {
                        p.StartInfo.Verb = "runas";
                    }

                    p.Start();

仍然无法正常工作。请帮帮我。

谢谢

【问题讨论】:

标签: c# process


【解决方案1】:
var processInfo = new ProcessStartInfo   
{   
    FileName = "app.exe",   
    UserName = "Username",   
    Domain = "yourdomain or leave blank",   
    Password = "password",   
    UseShellExecute = false,  
};   
Process.Start(processInfo);

只需添加/调整您的需求。

【讨论】:

    【解决方案2】:

    如果您可以控制您尝试运行的应用程序,则应在可执行文件上附加清单并要求提升权限。 为此,您制作一个与此类似的文件,并将其命名为与您的应用程序相同的名称,并以 .manifest 作为扩展名(例如 yourApp.exe.manifest):

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="appName" type="win32"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
          <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator"/>
          </requestedPrivileges>
        </security>
      </trustInfo>
        <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
            <application>
                <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
            </application>
        </compatibility>
    </assembly>
    

    然后使用 Visual Studio 命令提示符中的 mt 工具附加它

    【讨论】:

      【解决方案3】:

      ProcessStartInfo 类有 UserName 和 Password 等属性,请尝试在 Process Start 方法中使用它

      【讨论】:

        猜你喜欢
        • 2016-09-29
        • 2011-06-06
        • 2011-05-05
        • 2012-06-25
        • 2012-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多