我有一个需要在管理权限下运行的进程。我需要一般的joe来运行这个过程,但我不想让每个人都可以访问......所以我创建了一个简单的类,它将以管理员身份运行这一项任务,并使用模拟。为什么模拟进程返回“目录名称无效”?
该代码是非常前卫的,但我不明白为什么这是崩溃。帮帮我??!!
我正在通过批处理文件运行此文件,我甚至已将需要执行的文件复制到本地硬盘驱动器,认为这可能是通过网络运行应用程序的权限问题。
public static Process ImpersonateProcess(string exe, string args, string Username, string Password)
{
ProcessStartInfo psi = new ProcessStartInfo(exe);
psi.Arguments = args;
psi.UseShellExecute = false;
psi.UserName = Username;
psi.Password = new SecureString();
foreach (char c in Password.ToCharArray())
{
psi.Password.AppendChar(c);
}
Process proc = null;
Console.WriteLine("starting...");
proc = Process.Start(psi);
Console.WriteLine("started");
return proc;
}
在上面的代码中,我从来没有 “开始”。它会在Process.Start(psi)中引发错误,并显示错误消息“目录名称无效”。
你确定你提供的exe名是正确的吗?你可以在开始这个过程之前打印它,并仔细检查? – Grzenio 2009-04-22 16:07:38