分享
 
 
 

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

王朝c#·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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中的数据调整各组件属性对应的数值:

组件类型

组件名称

属性

设置结果

Form

Form1

Text

利用WMI控制远程计算机

Form1

FormBorderStyle

FixedSingle

Form1

MaximizeBox

False

Label

label1

Text

机器名称或IP地址:

label2

Text

具有WMI权限的超级用户名:

label3

Text

口令:

label4

Text

选择控制类型:

TextBox

textBox1

Text

""

textBox2

Text

""

textBox3

PasswordChar

*

textBox3

Text

""

Button

button1

Text

执行

button1

FlatStyle

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( "\\\\" + textBox1.Text + "\\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的方法有所帮助。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有