テストとセキュリティのために、特定のプロセスを強制的に閉じるJavaプログラムを作成しようとしています。私は "taskmgr.exe"プロセスと "cmd.exe"プロセスでテストしています。プログラムの送信コマンドが管理者でない場合、プロセスを管理者として強制終了するにはどうすればよいですか?
taskmgr.exeは問題なく動作しますが、コマンドプロンプトが管理者として実行されていない場合は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プログラムを管理者として実行することはできません。これも可能ですか?
は実際に、あなたが_are_([非常に許可] http://meta.stackoverflow.com/a/ 262749/510036)ここでハックについて話をする。私がまだそれを使用している少数の良い理由の1つ。 :) – Qix
それは私が考えたものです。そうですね。答えをありがとう:) –
@Qixはい、もちろん。私は冗談を言っていた。 (クールな名前、ところで、私はそのアーケードゲームをプレイしていました) –