我想以管理员身份开始一个进程。
管理员信用凭证经过硬编码,因此用户不知道管理员信用凭证可以以admin身份打开该进程。
我尝试过
var process = new ProcessStartInfo
{
FileName = "path",
UserName = "userName",
Domain = "myDomain",
Password = mySecritPassword,
UseShellExecute = false,
Verb = "runas",
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true
};
Process.Start(process);
但是我的过程是在没有管理员权限的情况下开始的
有什么我忘了吗?
答案 0 :(得分:0)
您需要将UseShellExecute设置为true。所以这应该工作:
var process = new ProcessStartInfo
{
FileName = "path",
UserName = "userName",
Domain = "myDomain",
Password = mySecritPassword,
UseShellExecute = true,
Verb = "runas",
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true
};
Process.Start(process);
您需要接受UAC提示符才能获得管理员特权,并且由于某些原因,仅当您使用ShellExecute时才显示UAC提示符。有关更多信息(但不多),请参阅本文:Teach Your Apps To Play Nicely With Windows Vista User Account Control。