当程序发送命令不是管理员时,如何强制关闭以管理员身份运行的进程?

时间:2016-09-18 18:47:03

标签: java windows command-line admin command-prompt

出于测试和安全目的,我正在尝试制作一个强制关闭某些进程的Java程序。我正在使用“taskmgr.exe”进程和“cmd.exe”进程对其进行测试。

无论如何,它都适用于taskmgr.exe,但只有在命令提示符不以admin身份运行时才能在cmd.exe上运行。我正在使用taskkill /F在我的代码中关闭这些内容:

String line;
    String pidInfo = "";
    while (true) {
        Process p = null;
        try {
            p = Runtime.getRuntime().exec(
                    System.getenv("windir") + "\\system32\\"
                            + "tasklist.exe");
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        BufferedReader input = new BufferedReader(new InputStreamReader(
                p.getInputStream()));
        try {
            while ((line = input.readLine()) != null) {
                pidInfo += line;
            }
        } catch (IOException e1) {
            e1.printStackTrace();
        }

        try {
            input.close();
        } catch (IOException e1) {
            e1.printStackTrace();
        }

        if (pidInfo.contains("taskmgr.exe")) {
            Runtime rt = Runtime.getRuntime();
            try {
                rt.exec("taskkill /F /T /IM taskmgr.exe");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if(pidInfo.contains("cmd.exe")) {
            Runtime rt = Runtime.getRuntime();
            try {
                rt.exec("taskkill /F /T /IM cmd.exe");
            } catch(IOException ex) {
                ex.printStackTrace();
            }
        }
    }

这一切都很好。但是我如何修改代码以便它还可以强制管理命令提示符退出?出于我的目的,我无法以管理员身份运行Java程序。这甚至可能吗?

1 个答案:

答案 0 :(得分:2)

长话短说,你问的是非管理进程是否可以杀死管理进程。

那是不可能的。

因此,代码中的任何更改都无法实现。

(至少没有一些m4d h4x0r ski11z,我们不允许在这里讨论。)