Python監視Windowsサービス
wmi
Python はこのモジュールを使用して、 Windows システム上のWindows サービスを監視できます。この記事では、Python を使用して Windows サービスを監視し、サービス状態のクエリとサービスの開始と停止の機能を実装する方法を紹介します。
依存関係をインストールする
wmi
モジュールを使用する前に、最初に wmi パッケージをインストールする必要があります。次のコマンドでインストールできます。
pip install wmi
サービスステータスのクエリ
このモジュールを使用してwmi
、Windows システム内の既存のサービスとサービスの実行ステータスをクエリします。サンプルコードは次のとおりです。
import wmi
# 获取服务状态
def get_service_status(service_name):
wmiobj = wmi.WMI()
services = wmiobj.Win32_Service(Name = service_name)
print(services[0].state)
return services[0].state
# 查询系统中所有服务
def query_all_services():
wmiobj = wmi.WMI()
services = wmiobj.Win32_Service()
for i in services:
print(i)
サービスの開始と停止
os
サービスはモジュールを使用して開始および停止できます。具体的な方法は以下の通りです。
import os
import ctypes
#判断是否有管理员权限
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
# 启动服务
def start_service(service_name):
if is_admin():
cmd = 'NET START {}'.format(service_name)
result = os.popen(cmd)
print(result)
else:
print('no admin')
# 停止服务
def stop_service(service_name):
if is_admin():
cmd = 'NET STOP {}'.format(service_name)
result = os.popen(cmd)
print(result)
else:
print('no admin')
メモリ情報を取得する
psutil
モジュールを使用してメモリ情報を取得します。具体的な方法は以下の通りです。
# -*- encoding: utf-8 -*-
# 获取内存信息
def get_memory_info():
memory_info = {
}
mem_info = psutil.virtual_memory()
memory_info['total'] = mem_info.total
memory_info['available'] = mem_info.available
memory_info['percent'] = mem_info.percent
memory_info['used'] = mem_info.used
memory_info['free'] = mem_info.free
print(memory_info)
print(memory_info['percent'])
サンプルコード
システム内のすべてのサービスをクエリし、サービスを開始および停止する方法を示す完全なサンプル コードを添付します。
まとめ
この記事では、Python を使用して Windows サービスを監視し、サービスの状態のクエリとサービスの開始と停止の機能を実現する方法を紹介します。Windows サービスを管理する必要がある場合は、この記事で提供されているコードを参照として使用できます。