利用C 對遠端服務進行操作

2022-03-02 05:58:07 字數 1573 閱讀 1892

利用c#對遠端服務進行操作

在.net中提供了一些類來顯示和控制windows系統上的服務,並可以實現對遠端計算機服務服務的訪問,如system.serviceprocess命名空間下面的servicecontroller 類,system.management下面的一些wmi操作的類。雖然用

servicecontroller可以很方便的實現對服務的控制,而且很直觀、簡潔和容易理解。但是我認為他的功能同通過wmi來操作服務相比,那可能就有些單一了,並且對多個服務的操作可能就比較麻煩,也無法列出系統中的所有服務的具體資料。這裡要講的就是如何使用system.management元件來操作遠端和本地計算機上的服務。

wmi作為windows 2000作業系統的一部分提供了可伸縮的,可擴充套件的管理架構.公共資訊模型(cim)是由分布式管理任務標準協會(dmtf)設計的一種可擴充套件的、物件導向的架構,用於管理系統、網路、應用程式、資料庫和裝置。windows管理規範也稱作cim for windows,提供了統一的訪問管理資訊的方式。如果需要獲取詳細的wmi資訊請讀者查閱msdn。system.management元件提供對大量管理資訊和管理事件集合的訪問,這些資訊和事件是與根據 windows 管理規範 (wmi) 結構對系統、裝置和應用程式設定檢測點有關的。

但是上面並不是我們最關心的,下面才是我們需要談的話題。

毫無疑問,我們要引用system.management.dll程式集,並要使用system.management命名空間下的類,如managementclass,managementobject等。下面用乙個名為win32servicemanager的類把服務的一些相關操作包裝了一下,**如下:

using system;

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)

catch(managementexception e)

return strrst;

}

利用SSH對主機進行遠端控制

a.伺服器端產生使用者的自己的加密金鑰及對外公開使用的公鑰。在unix環境下,產生金鑰的方法如下 keygen 要求使用者輸入乙個長的認證字串,這個字串的功能同password相當,但是,它更長,一般是在20個字元以內。再次輸入相同的字串以確認輸入的正確,之後,系統產生一對金鑰及公鑰。將公鑰複製到本...

C 對XML進行操作

c 操作xml時,要引入命名空間using system.xml 獲取根節點的方法 1 知道根節點名稱 xmlnode root xmldoc.selectsinglenode 根節點名稱 2 不知道根節點名稱 xmlelement root xmldoc.documentelement xml中n...

c 對mssql進行操作(ado)

ado是以com的形式來進行提供,所以他的許多行為都必須支援com的規範,在進行ado操作之前必須將ado的com物件引入到專案當中。引入 import c program files commonfiles system ado msado15.dll no namespace rename eo...