国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Visual C#中用WMI控制遠程計算機

2024-07-21 02:27:34
字體:
來源:轉載
供稿:網友
中國最大的web開發資源網站及技術社區,
wmi不僅可以獲取想要的計算機數據,而且還可以用以遠程控制。遠程控制計算機不僅是黑客們的夢想,也是大多數網絡管理者所渴望得到的,尤其在現代的網絡中,每一個網絡管理者所面對的局域網,都是由一個龐大的計算機群組成,如果有效的管理網絡的每一臺計算機就顯得格外重要了。目前網絡管理軟件通常的做法是,在遠程計算機上運行客戶端后臺程序,在本地計算機上運行一個服務器端前臺控制程序,通過這二個程序直接的通訊實現對計算機的遠程控制。這種作法的缺點是十分明顯的,當客戶端關閉了后臺程序,這種遠程管理就無法實現了,所以為了克服這個缺點,遠程控制軟件的客戶端程序就做的非常隱蔽,使用戶在不知覺中運行程序。

  其實做遠程控制軟件,wmi是一個很好的選擇,尤其是在目前,windows 2000已經成為了主流的操作系統,利用wmi編寫遠程控制軟件可以省略了已往遠程控制軟件最頭痛的一個環節--分發客戶端程序。

  版權聲明:任何獲得天極網授權的網站,轉載時請務必保留作者信息和以下鏈接
  天極開發c#專欄:http://dev.yesky.com/msdn/msdnc/
 
  本節中介紹的遠程控制程序,能夠讓使用者重啟和關閉遠程計算機。其所使用的就是wmi,下面是visual c#中利用wmi控制遠程計算機具體實現步驟。

  1. 首先啟動visual studio .net,依次選擇"文件"、"新建"、"項目"菜單后,在彈出"新建項目"對話框中將"項目類型"設置為"visual c#項目",將"模板"設置為"windows應用程序",在"名稱"文本框中輸入"利用wmi控制遠程計算機",在"位置"的文本框中輸入"e:/vs.net項目",然后單擊"確定"按鈕。這樣在"e:/vs.net項目"目錄中就創建了一個新的文件夾"利用wmi控制遠程計算機",里面存放的就是"利用wmi控制遠程計算機"的項目文件。

  2. 重新執行一下實現【獲取遠程計算機硬盤信息】項目中的第二至第四步驟。

  3. 把visual studio .net當前窗口切換到【form1.cs(設計)】窗口,并從【工具箱】中的【windows窗體組件】選項卡中往窗體中拖入下列組件,并執行相應操作:

  三個textbox組件,用以輸入遠程計算機名稱(或ip地址)、遠程計算機wmi操作用戶名和口令。

  一個combobox組件,用以選擇對遠程計算機執行的操作類型。

  四個label組件。

  一個button組件,名稱為button1,拖入窗體后,雙擊此組件,則系統會在form1.cs文件中自動產生其click事件對應的處理代碼。

  4. 按照表06中的數據調整各組件屬性對應的數值:

組件類型組件名稱屬性設置結果
formform1text利用wmi控制遠程計算機
form1formborderstylefixedsingle
form1maximizeboxfalse
labellabel1text機器名稱或ip地址:
label2text具有wmi權限的超級用戶名:
label3 text口令:
label4text選擇控制類型:
textboxtextbox1text""
textbox2text ""
textbox3passwordchar*
textbox3text ""
buttonbutton1text執行
button1flatstyle flat
      表06:【利用wmi控制遠程計算機】項目窗體中各組件的主要屬性設定數值表

  并按照圖09中各組件的位置和排列順序調整窗體中組件的位置和排列順序:


圖09:【利用wmi控制遠程計算機】的設計界面

  5. 把visual studio .net的當前窗口切換到form1.cs文件的編輯窗口,并用下列代碼替換form1.cs中的button1的click事件對應的處理代碼。下列代碼的作用是對根據用戶的選擇對遠程計算機進行進行相應的遠程控制:

private void button1_click ( object sender , system.eventargs e )
{
 //確定wmi操作的范圍
 connectionoptions options = new connectionoptions ( ) ;
 //設定用于wmi連接操作的用戶名
 options.username = textbox2.text ;
 //設定用戶的口令
 options.password = textbox3.text ;
 try
 {
  managementscope conn = new managementscope( "http:////" + textbox1.text + "http://root//cimv2", options ) ;
  conn.connect();
  //確定wmi操作的內容
  objectquery oq = new objectquery ( "select * from win32_operatingsystem" ) ;
  managementobjectsearcher query1 = new managementobjectsearcher ( conn , oq ) ;
  //獲取wmi操作內容
  managementobjectcollection querycollection1 = query1.get ( ) ;
  //根據使用者選擇,執行相應的遠程操作
  foreach ( managementobject mo in querycollection1 )
  {
   string [ ] ss= { "" } ;
   //執行重啟操作
   if (combobox1.text =="重新啟動")
   {
    mo.invokemethod ( "reboot" , ss ) ;
   } else
    //執行遠程關機
    if ( combobox1.text =="遠程關機")
    {
     mo.invokemethod ( "shutdown" , ss ) ;
    }else
     messagebox.show ("選擇不正確的操作!","錯誤!");
   }
  }
  //報錯
  catch ( exception ee )
  {
   messagebox.show ( "連接" + textbox1.text + "出錯,出錯信息為:" + ee.message ) ;
  } 
}

  6. 至此,在上述步驟都正確完成,并全部保存后,【利用wmi控制遠程計算機】下面的全部工作就完成了。此時單擊【f5】快捷鍵,就可以運行程序了。在程序的【計算機名稱或ip地址】文本框中輸入要控制的遠程計算機名稱或ip地址,在【具有wmi權限的用戶名】和【口令】文本框中輸入具有wmi操作的帳戶和口令,在【選擇控制類型】組合框中選擇對遠程計算機的控制類型后,單擊【執行】按鈕,則程序就能夠對指定的遠程計算機進行相應的控制了。圖10是【利用wmi控制遠程計算機】的運行界面。


圖10:【利用wmi控制遠程計算機】的運行界面

  總結:

  通過以上示例,可見wmi的確是一個非常有用的東西,但由于它還比較新,國內甚至國外還沒有完整的介紹資料,因此只是簡要的瀏覽了一下wmi的應用,希望本文的內容能夠對大家了解、掌握使用visual c#調用wmi的方法有所幫助。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 萨迦县| 伽师县| 北川| 潜山县| 宜州市| 五华县| 武义县| 马龙县| 盘山县| 金湖县| 云南省| 伊春市| 乡宁县| 呼伦贝尔市| 静乐县| 临猗县| 田东县| 罗甸县| 沅江市| 连州市| 太和县| 三都| 揭西县| 伊宁县| 海门市| 类乌齐县| 微山县| 临沧市| 华坪县| 平湖市| 尚志市| 福安市| 紫金县| 溧阳市| 镇沅| 武平县| 山东省| 乐业县| 大埔区| 乌兰浩特市| 武威市|