Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#ProcessStartInfo和Process.Start在System32中找不到程序_C# - Fatal编程技术网

C#ProcessStartInfo和Process.Start在System32中找不到程序

C#ProcessStartInfo和Process.Start在System32中找不到程序,c#,C#,我正在尝试在C#中使用提升的权限运行shell命令。但是,以下代码返回: 系统找不到指定的文件 该错误存在时,也没有附加SystemDriectory前缀 但是,如果我执行命令C:\wdsutil(或C:中的任何其他命令),则该命令不会返回错误 如何获取进程。开始在System32中运行这些命令。System32在较新的系统(特别是64位windows 7或2008)上不是“真实的”。。。它是从一些内部目录合成的,当访问它时,它会显示不同的应用程序(32对64)不同的内容…我测试运行了代码,将可

我正在尝试在C#中使用提升的权限运行shell命令。但是,以下代码返回:

系统找不到指定的文件

该错误存在时,也没有附加SystemDriectory前缀

但是,如果我执行命令C:\wdsutil(或C:中的任何其他命令),则该命令不会返回错误


如何获取进程。开始在System32中运行这些命令。System32在较新的系统(特别是64位windows 7或2008)上不是“真实的”。。。它是从一些内部目录合成的,当访问它时,它会显示不同的应用程序(32对64)不同的内容…

我测试运行了代码,将可执行文件更改为位于C:\Windows\System32目录中的可执行文件。它运行正常。(我正在运行Win 7 64位)

建议:确保exe存在于 C:\Windows\System32,或您试图从中运行它的任何位置。此外,如果您是从internet下载的,请确保它已解除阻止(右键单击exe>属性>解除阻止)


Environment.SystemDirectory
返回的是什么?它实际上位于C:\Windows\System32中,并且不是从internet下载的(安装在Microsoft分布式CD上),谢谢!这几乎是我必须做的来修复它。请参阅:[(说XP适用于我所在的操作系统Server2008)详细的答案是使用C:\Windows\Sysnative作为目录
string command = System.IO.Path.Combine(Environment.SystemDirectory, "wdsutil.exe");
string args = ""; //Appropriate arguments
ProcessStartInfo psInfo = new ProcessStartInfo(command);
psInfo.Arguments = args;
psInfo.Verb = "runas";

try
{
    Process p = Process.Start(psInfo);
    p.WaitForExit();
    return "Try Done";
}
catch(Exception e)
{
    return e.Message;
}
        string command = System.IO.Path.Combine(Environment.SystemDirectory, "wscript.exe");
        string args1 = ""; //Appropriate arguments
        ProcessStartInfo psInfo = new ProcessStartInfo(command);
        psInfo.Arguments = args1;
        psInfo.Verb = "runas";

        try
        {
            Process p = Process.Start(psInfo);
            p.WaitForExit();
            //return "Try Done";
        }
        catch (Exception e)
        {
            //return e.Message;
        }