2016-09-18 8 views
0

テストとセキュリティのために、特定のプロセスを強制的に閉じる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プログラムを管理者として実行することはできません。これも可能ですか?

答えて

2

簡単に言えば、管理者以外のプロセスが管理プロセスを強制終了できるかどうかを尋ねてきます。

これはできません。

したがって、コードを変更することはできません。

(少なくともいくつかのM4D h4x0r ski11z、我々はおよそここで話をすることは許されないされている。がないわけではない)

+1

は実際に、あなたが_are_([非常に許可] http://meta.stackoverflow.com/a/ 262749/510036)ここでハックについて話をする。私がまだそれを使用している少数の良い理由の1つ。 :) – Qix

+1

それは私が考えたものです。そうですね。答えをありがとう:) –

+0

@Qixはい、もちろん。私は冗談を言っていた。 (クールな名前、ところで、私はそのアーケードゲームをプレイしていました) –

関連する問題