运行pskill.exe“访问被拒绝”

时间:2010-07-19 18:46:17

标签: process c#-4.0 kill access-denied

我试图使用pskill远程杀死进程。

从命令行开始,pskill工作得很好,但是在C#中尝试相同的命令时,我得到了一个拒绝访问的错误。

    var startInfo = new ProcessStartInfo {
                                            FileName = "pskill.exe",
                                            Arguments = "-t \\" + _currentMachine + 
                                                        " -u BobSmith -p Pass123 " + _currentService + 
                                                        " /acceptEULA"
                                         };

    try {
        using (Process exeProcess = Process.Start(startInfo)) {
            exeProcess.WaitForExit();
        }
    } catch {
        Console.WriteLine("Cannot forcibly kill process.");
    }

我甚至尝试创建一个手动运行良好的.bat文件但是在尝试从C#调用.bat时遇到了同样的错误。

我正在试图访问win 2003服务器的XP机器上。

3 个答案:

答案 0 :(得分:1)

对于下一个人......

pskill.exe需要在Win2000兼容模式下运行。

答案 1 :(得分:0)

我会仔细检查你的凭据。这或者你的过程被“锁定”了。

答案 2 :(得分:0)

在C#中,字符串中的字符默认是转义的。分配给Arguments的字符串包含两个转义字符。我怀疑他们变成了一个反斜杠。在字符串定义前添加@以解决此问题。

  Arguments = @"-t \\" + _currentMachine + 

在任何情况下,我都建议添加代码将整个命令行写入文本文件,并检查它是否符合您的需要。如果文本文件有一个bat扩展名,你可以成功运行吗?