如何在 Python 中使用 WMI 检查服务是否 运行?

How to check if a service is running using WMI in Python?

我是 Python 的新手,一般来说是编码方面的新手。我正在尝试检测某个服务是否为 运行,如果为 运行,则停止并重新启动它。如果不存在,则抛出异常并退出。

我有以下内容:

import wmi

c = wmi.WMI()

for service in c.Win32_Service():
    if service.Name == 'genericservice':
        service.StopService()

我从我们现有的另一个脚本中借用了该代码。但是,如何添加一个条件语句来首先检查服务是否为 运行?如果根本不是 运行,然后异常退出?

请指教。谢谢!

这可以使用 win32com.client 模块中的 WQL 轻松完成。

例如,

from win32com.client import GetObject
WMI = GetObject('winmgmts:')

if len(WMI.ExecQuery('select * from Win32_Process where Name like "%s%s"' % ("process_name",'%'))) > 0:
    pass 

要按照您的方式执行此操作,请使用 WQL 执行类似 的操作来检查该服务是否确实 运行。

如果有帮助,您可以看到tutorial