2016-11-03 5 views
0

私は現在、タスクを殺すためにPythonで "Taskkill"を使用しようとしていますが、いくつかのロードブロッキングを実行しています。私はこれについて正しい方向に行くのか、それとも良い方法があるのだろうかと思っていましたか?今はコードがまったく動いておらず、ちょうど黒のDOSボックスが短く表示されています。私は離れて私のネットワーク上でそれを使用することができるようにする必要があるなど、タスクキルに変数をプログラムすることができる必要があります。基本的には、ユーザ名(昇格特権の場合)、接続先のコンピュータのIPアドレス、殺害を必要とするタスクが必要です。ユーザー名には、手動で入力したパスワードが必要です。Pythonを使用してタスクを終了する最も良い方法

これは、コードの一部です:

import tkinter as tk 
from tkinter import ttk 
from tkinter import * 
from socket import * 
from subprocess import call 

import platform 
import os 
import sys 
import getpass 

    def kill(): 
     ipad = ipaddress.get() 
     tsk = tskille.get() 
     os.system(['taskkill', '/u', 'domain\A'+usrnme, '/s '+ipad, '/F ', '/IM ' +tsk]) # Admin accounts are represeted by an "A" in front of the acctral username. 
     return 

usrnme = getpass.getuser() 
tskille = StringVar() # label that can be overwritten manually to whatever 
tskille.set("notepad.exe") # Just to put something in the box 
ipaddress = StringVar() # have other code to determine the ip address of a pc. 
ipaddress.set("0.0.0.0") 

は当初、私は「コール」または「RUNCMD」、最後に「os.system」が、私は間違いなく、何か間違ったことをやって使用してみました。すべてのヘルプはあなたがWMIインターフェイスを使用するか、PowerShellを使用し、デフォルトで来て停止-Processコマンドレットを使用するか、PowerShellを使用してプロセスを終了するには

+0

ただ好奇心が強い、あなたはパワーシェルを見ましたか?これはまさにstuff powershellのタイプです。あなたはいつもPythonのサブプロセスを使ってpowershellスクリプトを呼び出すことができます。 Powershellのバインディングがないと仮定します。 – bravosierra99

+0

私は以前はpowershellを使ったことはありませんでしたが、私は旧式のDOSに慣れていましたが、これはPythonの場合と同じ問題だと思いますか?コマンドに変数を追加する方法を理解しなければなりませんか? –

+0

私が言っていることは、おそらくインターネット上の仕事を殺すためにpowershellに組み込まれたライナーの1つであるということです。私はあなたに何かお金を賭けるでしょう。 Powershellを使用すると、コマンドに変数を追加することもできます。私はあなたがこれをグーグルにして、数分でやることができると思う。 – bravosierra99

答えて

0

powershell tutorial

をいただければ幸いです。

def kill(): 
    usrnme = getpass.getuser() 
    ipad = ipaddress.get() 
    tsk = tskille.get() 
    os.system("taskkill.exe /s %s /F /IM %s" % (ipad, tsk)) 
    return 

getpass.getuserは()のようにうまく機能:それはパスワードの入力を要求しません..しかし、この部分は、意図したとおりに動作します - [OK]を

0

ので、私が見つけた、それはユーザ名部分が好きではありません。 、基本的に私はちょうどそれが他の人がそれを使用する場合、動的であるようにしたい、それは彼らのユーザー名をスキャンし、追加されます:

os.system("taskkill.exe /u:domain\A%s /s %s /F /IM %s" % (usrnme, ipad, tsk)) 

しかし、このコードでは、作業は、DOS窓が開いてすぐに閉じるようになりません。

関連する問題