出于测试和安全目的,我正在尝试制作一个强制关闭某些进程的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程序。这甚至可能吗?
答案 0 :(得分:2)
长话短说,你问的是非管理进程是否可以杀死管理进程。
那是不可能的。
因此,代码中的任何更改都无法实现。
(至少没有一些m4d h4x0r ski11z,我们不允许在这里讨论。)