設計流程: 非管理員用戶---->程序A(非管理員) - >程序B(需要管理員)如何從nonadmin帳戶作爲管理員用戶啓動需要管理員權限的程序
我正在編寫一個程序,以啓動需要來自非管理員帳戶的管理員權限的程序。該程序在任何用戶啓動時啓動,並以具有管理權限的不同用戶身份啓動第二個程序(要求管理員權限)。我遇到的問題是該計劃是說,要啓動一個程序作爲一個不同的用戶,它需要管理員權限。我知道這不是真的,所以我知道我的代碼中有不正確的東西來啓動第二個進程。
的代碼如下:
try
{
ProcessStartInfo myProcess = new ProcessStartInfo(path);
myProcess.UserName = username;
myProcess.Password = MakeSecureString(password);
myProcess.WorkingDirectory = @"C:\Windows\System32";
myProcess.UseShellExecute = false;
myProcess.Verb = "runas"; //Does not work with or without this command
Process.Start(myProcess);
}
例外如下:
System.ComponentModel.Win32Exception (0x80004005): The requested operation requires elevation
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at Loader.Program.RunProgram(String path, String username, String password)
我的猜測是你的第一個進程甚至沒有通過非管理員用戶的文件權限訪問可執行文件? (System32通常不能由非管理員用戶訪問,不確定可執行文件的位置)您能否將程序移動到您認爲有權訪問的目錄並重試? –
在「Process.Start」之上張貼的例外需要提升。 – CoderWalker
是的,我意識到這一點,對不起 –