我目前正在尝试使用" Taskkill"在Python中杀死任务,但遇到了几个障碍。我想知道我是否能以正确的方式解决这个问题,或者是否有更好的方法?现在代码根本不起作用,只是一个黑色的dos框短暂出现并消失。我需要能够将变量编程到任务kill中,例如我需要能够在我的网络上远距离使用它。基本上它需要一个用户名(用于提升权限),我要连接的计算机的IP地址,以及需要查杀的任务。用户名需要手动输入密码。
这是代码的一部分:
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 :(得分:0)
要使用PowerShell终止进程,您可以使用WMI界面或使用Stop-Process cmdlet,默认情况下使用PowerShell。
答案 1 :(得分: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窗口立即打开和关闭。