使用Python在Windows 10上列出本地运行服务?

问题描述 投票:1回答:2

我需要做的就是创建一个程序,列出我的Windows机器上所有正在运行的服务。我尝试了很多方法,包括psutil无济于事。我试图通过尝试执行“net stat”命令来尝试简化它。它工作正常,但输出是乱码。反正有没有把它保存到文本文件漂亮又整洁?另外,我想在每一行旁边添加“Running”一词。当我尝试添加它时,我收到以下错误:

文件“./Python37/test3.py”,第3行,打印(str(result.stdout +'running'))TypeError:无法将str连接到字节

到目前为止,这是我的代码:

import subprocess
result = subprocess.run(['net', 'start'], stdout=subprocess.PIPE)
print(str(result.stdout + 'running'))
python windows service
2个回答
2
投票

像这样使用EnumServicesStatus API:

import win32con
import win32service

def ListServices():
    resume = 0
    accessSCM = win32con.GENERIC_READ
    accessSrv = win32service.SC_MANAGER_ALL_ACCESS

    #Open Service Control Manager
    hscm = win32service.OpenSCManager(None, None, accessSCM)

    #Enumerate Service Control Manager DB
    typeFilter = win32service.SERVICE_WIN32
    stateFilter = win32service.SERVICE_STATE_ALL

    statuses = win32service.EnumServicesStatus(hscm, typeFilter, stateFilter)

    for (short_name, desc, status) in statuses:
        print(short_name, desc, status) 

ListServices();
  • win32service和win32con是pywin32 opensource项目的一部分,你可以下载最新版本的qazxsw poi。

0
投票

here上你可以使用psutil 4.2.0psutil.win_service_iter()函数列出并查询windows服务。

psutil.win_service_get(name)
© www.soinside.com 2019 - 2024. All rights reserved.