Visual C#中用WMI控制远程计算机

2016-02-19 15:23 5 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的Visual C#中用WMI控制远程计算机教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

  WMI不仅可以获取想要的计算机数据,而且还可以用以远程控制。远程控制计算机不仅是黑客们的梦想,也是大多数网络管理者所渴望得到的,尤其在现代的网络中,每一个网络管理者所面对的局域网,都是由一个庞大的计算机群组成,如果有效的管理网络的每一台计算机就显得格外重要了。目前网络管理软件通常的做法是,在远程计算机上运行客户端后台程序,在本地计算机上运行一个服务器端前台控制程序,通过这二个程序直接的通讯实现对计算机的远程控制。这种作法的缺点是十分明显的,当客户端关闭了后台程序,这种远程管理就无法实现了,所以为了克服这个缺点,远程控制软件的客户端程序就做的非常隐蔽,使用户在不知觉中运行程序。

  其实做远程控制软件,WMI是一个很好的选择,尤其是在目前,Windows 2000已经成为了主流的操作系统,利用WMI编写远程控制软件可以省略了已往远程控制软件最头痛的一个环节--分发客户端程序。

  本节中介绍的远程控制程序,能够让使用者重启和关闭远程计算机。其所使用的就是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当前窗口切换到窗口,并从中的选项卡中往窗体中拖入下列组件,并执行相应操作:

  三个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:项目窗体中各组件的主要属性设定数值表

  并按照图09中各组件的位置和排列顺序调整窗体中组件的位置和排列顺序:

  图09:的设计界面

  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( "\" + textBox1.Text + "rootcimv2", 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 ) ;  } }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  6. 至此,在上述步骤都正确完成,并全部保存后,下面的全部工作就完成了。此时单击快捷键,就可以运行程序了。在程序的文本框中输入要控制的远程计算机名称或IP地址,在和文本框中输入具有WMI操作的帐户和口令,在组合框中选择对远程计算机的控制类型后,单击按钮,则程序就能够对指定的远程计算机进行相应的控制了。图10是的运行界面。

  图10:的运行界面

  总结:

  通过以上示例,可见WMI的确是一个非常有用的东西,但由于它还比较新,国内甚至国外还没有完整的介绍资料,因此只是简要的浏览了一下WMI的应用,希望本文的内容能够对大家了解、掌握使用Visual C#调用WMI的方法有所帮助。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1609540.html

延伸阅读
标签: 电脑入门
一、前言 随着计算机技术的发展,各种外部设备也在不停的发展,用户可以根据自己的要求,选择不同的硬件配置,并组成自己的硬件系统。这时,将用户的硬件设备信息记录下来,以便在系统启动时能够明确硬件的系统配置和用户对硬件参数的设置,以保证计算机正常运行的参数设置称为系统参数设定。 其实,将计算机的配件组装在一起,只是组装了硬...
声明: DeclareFunctionSetComputerNameLib"kernel32"Alias"SetComputerNameA"(ByVallpComputerNameAsString)AsLong 使用: NewName="HelloWorld" SetComputerNameNewName->
标签: 电脑入门
要进入BIOS设置,在系统启动时敲DEL键(或启动时第一屏上提示的键,通常的提示是:Press Delete to setup,或其他类似的句子)。如果的BIOS不能访问或者你不能进入CMOS设置,你就需要下载TweakBIOS,该软件不但会使你能极为简便地访 问CMOS,还能使你可以访问一些你以前不能访问的COMS设置项。 我们首先来看默认设置中被打开,但却被人工修改...
标签: 电脑入门
计算机管理是Windows系统上一个重要的功能模块,里面包括多项系统工具和磁盘管理工具。在Win10上,我们也经常需要用到计算机管理。下面图老师小编介绍Win10下如何打开计算机管理窗口。 方法一 右键此电脑,点击管理。 方法二 打开此电脑,点击"计算机"标签,选择管理。 此外还有一种方法,不过较为麻烦点,那就是在运行窗...
1、 什么是WMI  WMI是英文Windows Management Instrumentation的简写,它的功能主要是:访问本地主机的一些信息和服务,可以管理远程计算机(当然你必须要拥有足够的权限),比如:重启,关机,关闭进程,创建进程等。  2、 如何用WMI获得本地磁盘的信息?  首先要在VS.NET中创建一个项目,然后在添加引...

经验教程

155

收藏

6
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部