以下列表理解users = [item for item in out.split() if domain in item and userl in item]
因为它表明只有符合users()
和domain
条件的用户才会将用户添加到userl
。但是我在sorted_list
得到了空洞的结果。任何人都可以建议为什么?
domain = 'domainanme'
user_list = [test1, test2, test3]
new_list = []
for userl in user_list:
try:
out = subprocess.check_output(["tasklist", "/V", "/FO", "List", "/FI", "USERNAME eq {0}\{1}" .format(domain, userl)], stderr=subprocess.STDOUT)
users = [item for item in out.split() if domain in item and userl in item]
sorted_list = set(users)
print sorted_list
if sorted_list != None: # this was an attempted to remove the EMPTY items
for name in sorted_list:
print name
new_list.append(name)
else:
pass
打印名称输出
set([])
set([])
set([])
这是输出的样子:
答案 0 :(得分:0)
输出中的域名是大写的;确保你考虑到这一点。规范化 both 的大小写以确保不区分大小写的匹配:
users = [item for item in out.split() if domain.upper() in item.upper() and userl in item]
我会更聪明地解析输出,因为上面的内容很容易导致误报(包含域和用户名的进程名称,即使重叠文本也匹配)。