以管理员身份启动流程,不使用UseShellExecute?

时间:2014-08-14 12:02:06

标签: c# process

所以这是我的问题:

我已经启动了一个.bin文件,它只是一个.exe文件,重命名为.bin,具有管理员权限。

这就是我所拥有的:

PSI.FileName = "Client.bin";
PSI.WorkingDirectory = Directory.GetCurrentDirectory();
PSI.UseShellExecute = false;
PSI.Verb = "runas";
Process.Start(PSI);

我还在清单中设置了requireAdministrator。

我必须将UseShellExecute设置为false,看到这是我能找到的唯一可以将.bin作为.exe启动的方法。但是,根据Here,仅在UseShellExecute设置为true时使用runas和manifest。

问题:如何使用提升的权限启动非.exe进程?

2 个答案:

答案 0 :(得分:0)

拥有一个父进程,它是一个具有管理权限的可执行文件&然后从中启动“.bin”文件。

答案 1 :(得分:0)

根据this answer,无法直接运行.bin文件。

至少你可以使用runas(以及ShellExecute = true)运行你自己的.exe并使用命令行命令运行.tmp(没有ShellExecute,但进程已经提升)并且死掉。但这是最后的机会"溶液