如何以管理员权限启动进程
Posted
技术标签:
【中文标题】如何以管理员权限启动进程【英文标题】: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();
仍然无法正常工作。请帮帮我。
谢谢
【问题讨论】:
为您的用户授予该进程所需的权限.. How to start a Process as administrator mode in C#的可能重复 【参考方案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 方法中使用它
【讨论】:
以上是关于如何以管理员权限启动进程的主要内容,如果未能解决你的问题,请参考以下文章