如何在 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。
我是 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。