我需要使用System.Diagnostics.Process.Start()启动一个命令行程序,并以管理员身份运行它。
这个操作每天也会通过计划任务运行。
我需要使用System.Diagnostics.Process.Start()启动一个命令行程序,并以管理员身份运行它。
这个操作每天也会通过计划任务运行。
我刚刚尝试使用:
Process p = new Process();
p.StartInfo.Verb = "runas";
如果我以管理员身份运行程序,这个方法就可以正常工作,但是当计划任务运行它时,它似乎没有考虑到“runas”的参数。
使用SecureString类加密密码是更安全的运行带有登录和密码的进程的选项。以下是一段代码示例:
string pass = "yourpass";
string name ="login";
SecureString str;
ProcessStartInfo startInfo = new ProcessStartInfo();
char[] chArray = pass.ToCharArray();
fixed (char* chRef = chArray)
{
str = new SecureString(chRef, chArray.Length);
}
startInfo.Password = str;
startInfo.UserName = name;
Process.Start(startInfo);
你需要在项目属性中允许不安全的代码。
希望这可以帮到你。
Process.Start
时,需要为ProcessStartInfo
提供UserName
和Password
。Process p = new Process("pathto.exe");
p.StartInfo.UserName = "Administrator";
p.StartInfo.Password = "password";
p.Start();
我找到了,我需要在常规设置中设置计划任务以最高权限运行应用程序。