VisualC#中用WMI控制远程计算机

VisualC#中用WMI控制远程计算机,第1张

VisualC#中用WMI控制远程计算机,第2张

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

事实上,WMI是一个很好的选择远程控制软件,尤其是目前,Windows 2000已经成为主流操作系统。用WMI编写远程控制软件可以省略过去最麻烦的环节——分发客户端程序。

本节介绍的远程控制程序使用户能够重新启动和关闭远程计算机。它使用WMI。下面是在Visual C#中用WMI控制远程计算机的具体步骤。

1.先启动Visual Studio。net,然后选择“文件”、“新建”、“项目”菜单,在弹出的“新建项目”对话框中,将“项目类型”设置为“Visual C#项目”,将“模板”设置为“Windows应用程序”,在“名称”文本框中输入“使用WMI控制远程计算机”。这样在“E:\VS.NET项目”目录下新建一个“用WMI控制远程计算机”的文件夹,里面存放着“用WMI控制远程计算机”的项目文件。

2.重新执行“获取远程计算机硬盘信息”项目中的第二至第四步。

3.切换Visual Studio的当前窗口。Net拖动到[Form1.cs (Design)]窗口,从[工具箱]中的[Windows窗体组件]选项卡拖动以下组件到窗体中,并执行相应的操作:

三个TextBox组件用于输入远程计算机名(或IP地址)、远程计算机WMI操作用户名和密码。

用于选择要在远程计算机上执行的操作类型的ComboBox组件。

四个标签组件。

一个名为button1的按钮组件被拖动到窗体中。双击该组件后,系统会在Form1.cs文件中自动生成与其click事件对应的处理代码。

4.根据表06中的数据调整每个组件属性的相应值:

类型组件名称属性设置结果
Form Form1 Text使用WMI控制远程计算机
Form 1 formlborderstyle fixed single
Form 1 max ize box false
label 1 Text机器名称或IP地址:
label2 Text具有WMI权限的超级用户名:
label 3 Text password:
label 4 Text Select控件类型:
textbox textbox 1 Text " "
Text 2 textbox 3 pass

根据图09中组件的位置和顺序调整表单中组件的位置和顺序:

5.切换Visual Studio的当前窗口。Net到Form1.cs文件的编辑窗口,用下面的代码替换Form1.cs中button1的Click事件对应的处理代码。以下代码用于根据用户的选择远程控制远程计算机:

PrivateButton 1 _ Click(对象发送方,系统。eventargse)
{
/确定WMI操作的范围
Connection Options Options = New Connection Options();
//设置用于WMI连接操作的用户名
options . username = textbox 2 . text;
//设置用户的密码
options . password = textbox 3 . text;
try
{
management scope Conn = new management scope(" \ \ \ \ "+textbox 1。Text + "\root\cimv2 ",选项);
Conn . Connect();
//确定WMI操作的内容
对象查询OQ =新对象查询(" select * from Win32 _ operating system ");
ManagementObjectSearcher query 1 = new ManagementObjectSearcher(Conn,OQ);
//获取WMI操作内容
ManagementObjectCollection查询集合1 = Query 1 . Get();
//根据用户的选择,执行相应的远程操作
foreach(查询集合1中的管理对象mo)
{
string[]ss = { " " };
//执行重新启动操作
if (comboBox1。text = = " restart ")
{
mo . invoke method(" reboot ",SS);
} else
/执行远程关机
if (comboBox1。Text == "远程关机")
{
mo . invoke method(" shut down ",ss);
} else
messagebox . show("选错操作!",“错误!”);
}
}
/error
catch(exception ee)
{
messagebox . show(" connect "+textbox 1。Text+"错误,错误消息是:" ++"
}
}


6。至此,在正确完成上述所有步骤并全部保存后,就完成了[使用WMI控制远程计算机]中的所有后续工作。此时,单击[F5]快捷键运行程序。在程序的[计算机名称或IP地址]文本框中输入要控制的远程计算机的名称或IP地址,并在[具有WMI权限的用户名]和[密码]文本框中输入WMI操作的帐户和密码。在[选择控制类型]组合框中选择远程计算机的控制类型后,单击[执行]按钮,程序可以相应地控制指定的远程计算机。图10是“用WMI控制远程计算机”的运行界面。

总结:

通过上面的例子,可以看出WMI确实是一个非常有用的东西。但由于它还比较新,国内甚至国外都没有完整的介绍材料,所以我只是简单浏览了一下WMI的应用。希望本文的内容对你理解和掌握用Visual C#调用WMI的方法有所帮助。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VisualC#中用WMI控制远程计算机

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情