在.net中提供了一些類來顯示和控制windows系統上的服務,並可以實現對遠端計算機服務服務的訪問,如system.serviceprocess命名空間下面的servicecontroller 類,system.management下面的一些wmi操作的類。雖然用servicecontroller可以很方便的實現對服務的控制,而且很直觀、簡潔和容易理解。但是我認為他的功能同通過wmi來操作服務相比,那可能就有些單一了,並且對多個服務的操作可能就比較麻煩,也無法列出系統中的所有服務的具體資料。這裡要講的就是如何使用system.management元件來操作遠端和本地計算機上的服務。
wmi作為windows 作業系統的一部分提供了可伸縮的,可擴充套件的管理架構.公共資訊模型(cim)是由分布式管理任務標準協會(dmtf)設計的一種可擴充套件的、物件導向的架構,用於管理系統、網路、應用程式、資料庫和裝置。windows管理規範也稱作cim for windows,提供了統一的訪問管理資訊的方式。如果需要獲取詳細的wmi資訊請讀者查閱msdn。system.management元件提供對大量管理資訊和管理事件集合的訪問,這些資訊和事件是與根據 windows 管理規範 (wmi) 結構對系統、裝置和應用程式設定檢測點有關的。
但是上面並不是我們最關心的,下面才是我們需要談的話題。
毫無疑問,我們要引用system.management.dll程式集,並要使用system.management命名空間下的類,如managementclass,managementobject等。下面用乙個名為win32servicemanager的類把服務的一些相關操作包裝了一下,**如下:
using system.management;
namespace zz.wmi
public win32servicemanager(string host,string username,string password) }
// 驗證是否能連線到遠端計算機
public static bool remoteconnectvalidate(string host,string username,string password)
catch
return managementscope.isconnected;
} // 獲取指定服務屬性的值
public object getservicevalue(string servicename,string propertyname)
// 獲取所連線的計算機的所有服務資料
public string [,] getservicelist()
return services;
} // 獲取所連線的計算機的指定服務資料
public string [,] getservicelist(string servername)
); }
// 獲取所連線的計算機的的指定服務資料
public string [,] getservicelist(string servernames)
return services;
} // 停止指定的服務
public string startservice(string servicename)
catch(managementexception e)
return strrst;
} // 暫停指定的服務
public string pauseservice(string servicename)
catch(managementexception e)
return strrst;
} // 恢復指定的服務
public string resumeservice(string servicename)
catch(managementexception e)
return strrst;
} // 停止指定的服務
public string stopservice(string servicename)
catch(managementexception e)
return strrst;
} }
}
使用Zabbix監控windows服務
要監控的windows服務如下 zabbix中的主機配置 原主機己新增到了zabbix中 先在這台host下新增乙個 items 確認新增完成後,如果有多個服務需要新增,可以將當前items進行clone.新增完成後,再將新增的服務狀態的閾值監控起來,如果出現異常能及時報警提醒 點選 create ...
Nagios 監控windows伺服器
壓縮包解壓縮中agents裡面的windows 安裝 check mk agent.exe install 啟動服務 net start check mk agent 在windows檢查服務狀態 telnet 主機名 ip 6556 從nagios伺服器檢查狀態 telnet 主機名 ip 655...
windows服務監控及重啟指令碼
1 本篇目的 監控指定windows服務,停止後重啟。1 echo off 2rem 定義迴圈間隔時間和監測的服務 3set secs 600 4set srvname dot3svc 5 6echo.7 echo 8 echo 查詢計算機服務的執行狀態 9 echo 每間隔 secs 秒鐘進行一次...