我有一個需要在管理權限下運行的進程。我需要一般的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