Как проверить, работает ли служба с использованием WMI в Python? - PullRequest
1 голос
/ 05 августа 2020

Я новичок в Python и кодировании в целом. Я пытаюсь определить, запущена ли определенная служба, и, если она запущена, остановить и перезапустить. Если его нет, создайте исключение и выйдите.

У меня есть следующее:

import wmi

c = wmi.WMI()

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

Я позаимствовал этот код из другого скрипта, который у нас был. Однако как мне добавить условный оператор, чтобы проверить, запущена ли служба вообще? А потом выйти с исключением, если он вообще не работает?

Посоветуйте, пожалуйста. Спасибо!

1 Ответ

0 голосов
/ 06 августа 2020

Это легко сделать с помощью WQL в модуле win32com.client.

Например,

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 

Чтобы сделать это по-своему, выполните что-то вроде this с помощью WQL, чтобы проверить, действительно ли эта служба запущена.

Вы можете посмотреть руководство , если это поможет.

...