2016-11-03 27 views
0

我目前正試圖在Python中使用「Taskkill」來殺死任務,但遇到了幾個障礙。我想知道我是否正確地採取這種方式,或者如果有更好的方法?現在代碼根本不起作用,只是一個黑色的dos框會短暫出現並消失。我需要能夠將變量編程到任務kill中,例如我需要能夠在遠距離使用我的網絡。基本上它需要一個用戶名(用於提升權限),我要連接的計算機的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」但我肯定做錯了什麼。任何幫助,將不勝感激

+0

只是好奇,你有沒有看過PowerShell?這正是powershell所用的類型..您可以使用Python子進程調用powershell腳本。假設沒有任何綁定PowerShell,我幾乎期望有。 – bravosierra99

+0

我以前從來沒有使用過powershell,我只是習慣了舊式的DOS,但是我認爲它會在python中出現同樣的問題?必須弄清楚如何將變量添加到命令中? –

+0

我的意思是它可能是一個內置於PowerShell中的單線程來殺死互聯網上的任務。我敢打賭你是任何金錢都是核心的命令。 Powershell還允許您將變量添加到命令中。我想你可以谷歌這一點,並在幾分鐘內完成。 – bravosierra99

回答

0

powershell tutorial

要終止使用PowerShell中,你可以使用WMI接口或使用停止進程cmdlet,後者配備的缺省使用PowerShell的過程。

0

行,所以我發現它不喜歡的用戶名部分 - 它不會提示輸入密碼..但這一部分按預期工作:

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()的作品,以及,基本上我只是希望它是動態的,以便其他人使用它;它會掃描他們的用戶名,並添加:

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

但這代碼不起作用引起的DOS窗口中打開,並立即關閉。