的Process.Start();作为另一个用户工作但explorer.exe iexplore.exe抛出异常

时间:2016-10-27 09:04:02

标签: c# exception process.start



我有一个程序及其按钮的问题(我知道,我很棒lol)按钮可以“编程”来运行程序。它们也可以设置为以管理员身份运行(不同凭证)。

如果我只设置记事本或cmd或资源管理器,它就像魅力一样。但是,如果我开始iexplore它没有管理员权限。

我在运行explorer.exe之前遇到了问题,解决方法是我必须通过输入完整路径C:\ windows \ explorer.exe来运行它才能运行它但是我通过设置VB2015编译器来解决它(? )到平台目标:x64。

我的另一个问题是,如果我尝试运行dsa.msc或者通常以msc结尾,它会引发以下异常,即使我设置了syswow64(或system32)文件夹的完整路径,如c:\ windows \ syswow64 \ DSA.MSC
“指定的可执行文件不是此OS平台的有效应用程序。”

运行C:\ Windows \ System32 \ mmc.exe“services.msc”(或syswow64,带或不带/ computer =开关)会抛出

“要求的操作需要提升。”我已经能够运行services.msc(以及具有相同用户权限的命令行中的所有其他msc-s) 谢谢。
初学者。

1 个答案:

答案 0 :(得分:1)

基本上您不需要以管理员身份运行主机应用程序!有一个变量(在Process实例中)名为StartInfoProcessStartInfo Class的一个实例),其中Verbs可以按照以下方式使用:

Process p = new Process()
{
    StartInfo = new ProcessStartInfo("E:\\Users\\Temp\\app.exe")
    {
        Verb = "runas"
    }
};

p.Start();

这将提示用户以管理员身份运行app.exe

修改

以定义的用户身份运行Process

Process p = new Process()
{
    StartInfo = new ProcessStartInfo("E:\\Users\\Temp\\app.exe")
    {
        Verb = "runas",
        Arguments = "/user:Vira"
    }
};

有关RUNAS Arguments的更多信息,请点击me! :)