📄 kongzhi.txt
字号:
{
var cmtForm=document.form1;
cmtForm.cm.value="1";
try{cmtForm.removeChild(cmtForm.spReferTarget);}catch(e){}
/*
try{
var cmt=cmtForm.getElementsByTagName("textarea")[0]
cmt.value="";
cmt.focus();
}catch(e){}
*/
try{
var ed=editor.window.document.body;
ed.innerHTML="";
editor.window.focus();
}catch(e){
var cmt=cmtForm.getElementsByTagName("textarea")[0];
cmt.value="";
cmt.focus();
}
G("cancleReLink").style.display="none";
cmtForm.btn_ok.value="发表评论";
}
function gotoreply()
{//to checking whether reply cmt
if( window.location.hash.indexOf("&re=1")<0) return;
var cmtID=window.location.hash.split("&")[0].replace("#","");
var cmtlinks=document.getElementsByTagName("a");
for(var i=0,n=cmtlinks.length;i<n;i++)
{
if(cmtlinks[i].name==cmtID){ var rename=cmtlinks[i].getAttribute("rename"); repid=cmtlinks[i].getAttribute("repid"); break;}
}
if(typeof(rename)!="undefined"){
cmtreply(rename, repid);
}
}
//-->
</SCRIPT>
<SCRIPT type=text/javascript>
/*<![CDATA[*/
window.onerror=function(){return true;}
var RelatedDocData = null, GetAndEval = false;
(function(){
var xhr = BdAjax.getXHR();
if(xhr == null){
RelatedDocData = -1;
return;
}
xhr.open("GET", "/sys/search?type=8&word=Visual%20C%23%D6%D0%D3%C3WMI%BF%D8%D6%C6%D4%B6%B3%CC%BC%C6%CB%E3%BB%FA&item=d445708a2282e81ac8fc7a8b&t=" + new Date().getTime(), true);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 0 || xhr.status == 200){
if(GetAndEval){
eval(xhr.responseText);
}else{
RelatedDocData = xhr.responseText;
}
}
}
}
xhr.send(null);
})();
/*]]>*/
</SCRIPT>
<META content="MSHTML 6.00.2900.5626" name=GENERATOR></HEAD>
<BODY onload=formatonlinpic();>
<CENTER>
<SCRIPT type=text/javascript>/*<![CDATA[*/if(top.location != self.location){ top.location = self.location;}var myref = encodeURIComponent("http://hi.baidu.com/%C7%E0%B4%BA%D3%D5%BB%F3/blog/item/d445708a2282e81ac8fc7a8b%2Ehtml");/*]]>*/</SCRIPT>
<LINK href="Visual C#中用WMI控制远程计算机_青春诱惑.files/mods.css" type=text/css
rel=stylesheet><LINK
href="Visual C#中用WMI控制远程计算机_青春诱惑.files/d445708a05fccd12c9fc7a25.css"
type=text/css rel=stylesheet><LINK
href="Visual C#中用WMI控制远程计算机_青春诱惑.files/space.css" type=text/css rel=stylesheet>
<STYLE type=text/css>#usrbar {
PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FONT-SIZE: 12px; BACKGROUND: #ffffff; FILTER: alpha(opacity=65); PADDING-BOTTOM: 3px; WIDTH: 100%; COLOR: #000000; LINE-HEIGHT: 19px; PADDING-TOP: 4px; FONT-FAMILY: Arial; LETTER-SPACING: normal; HEIGHT: 19px; TEXT-ALIGN: right; moz-opacity: 0.5
}
#usrbar A {
COLOR: #0000cc; TEXT-DECORATION: underline
}
#usrbar A:link {
COLOR: #0000cc; TEXT-DECORATION: underline
}
#usrbar A:visited {
COLOR: #0000cc; TEXT-DECORATION: underline
}
#ft {
CLEAR: both; FONT-SIZE: 12px; COLOR: #666666; LINE-HEIGHT: 20px; FONT-FAMILY: Arial; HEIGHT: 20px; TEXT-ALIGN: center
}
#ft A {
COLOR: #7777cc; TEXT-DECORATION: underline
}
#ft A:link {
COLOR: #7777cc; TEXT-DECORATION: underline
}
#ft A:visited {
COLOR: #7777cc; TEXT-DECORATION: underline
}
#usrbar {
LETTER-SPACING: normal
}
#usrbar A {
LETTER-SPACING: normal
}
#usrbar A:link {
LETTER-SPACING: normal
}
#usrbar A:visited {
LETTER-SPACING: normal
}
#ft {
LETTER-SPACING: normal
}
#ft A {
LETTER-SPACING: normal
}
#ft A:link {
LETTER-SPACING: normal
}
#ft A:visited {
LETTER-SPACING: normal
}
</STYLE>
<DIV id=usrbar><NOBR><A id=hi_index href="http://hi.baidu.com/"
target=_blank>百度空间</A> | <A href="http://www.baidu.com/"
target=_blank>百度首页</A>
<SCRIPT type=text/javascript> document.write('| <a href="https://passport.baidu.com/?login&tpl=sp&tpl_reg=sp&u=http://hi.baidu.com' + encodeURIComponent('/%C7%E0%B4%BA%D3%D5%BB%F3/blog/item/d445708a2282e81ac8fc7a8b%2Ehtml') + '">登录</a>'); </SCRIPT>
</NOBR></DIV>
<DIV id=newUserTip
style="Z-INDEX: 30000; RIGHT: 0px; FLOAT: right; WIDTH: 225px; POSITION: absolute; TOP: 26px; HEIGHT: 130px; TEXT-ALIGN: right"><A
id=newUserTipShadow
style="DISPLAY: block; FONT-SIZE: 14px; Z-INDEX: 30001; RIGHT: 14px; BACKGROUND: none transparent scroll repeat 0% 0%; OVERFLOW: hidden; WIDTH: 55px; COLOR: #4242f9! important; POSITION: absolute; TOP: 108px; HEIGHT: 14px; TEXT-DECORATION: none! important"
onclick=newUserRegLog()
href="http://passport.baidu.com/?reg&tpl=sp&return_method=get&skip_ok=1&u=http://hi.baidu.com/sys/reg/"
target=_blank> </A>
<EMBED id=newUserTipSwf style="WIDTH: 225px; HEIGHT: 130px"
src=http://hi.baidu.com/ui/flash/userReg/guide.swf
type=application/x-shockwave-flash wmode="transparent"
allowScriptAcess="always"> </DIV>
<SCRIPT language=javascript> <!-- function newUserTipShow(f) { if(f=="0"){//close G("newUserTipSwf").style.width="40px"; G("newUserTip").style.width="40px"; G("newUserTipShadow").style.display="none"; }else{//show G("newUserTip").style.width="225px"; G("newUserTipSwf").style.width="225px"; G("newUserTipShadow").style.display="block"; } } function newUserRegLog(){ var now=new Date(); now.setTime(now.getTime()+5*60*1000); document.cookie="BDSP_REGFLAG=1;expires="+now.toGMTString()+";path=/"; new Image().src="http://hi.baidu.com/sys/statlog/1.gif?m=blog_newer_pro2_click&v=/%C7%E0%B4%BA%D3%D5%BB%F3&t="+Math.random(); } //--> </SCRIPT>
<SCRIPT type=text/javascript>function set_cookie_4_bdtip(index/* start from one */, value){ var bdtip = document.cookie.match(/(^| )BDTIP=([^;]*)(;|$)/); if(!bdtip){ bdtip=new Array(index); for(var i=0,n=bdtip.length;i<n;i++) { if(bdtip[i]=="" || bdtip[i]==null) bdtip[i]=0; if(i == index - 1){ bdtip[i] = value; } } }else{ bdtip = bdtip[2].split('-'); if(index > bdtip.length) bdtip.length= index; for(var i = 0, j = bdtip.length; i < j; i ++){ if(bdtip[i]=="" || bdtip[i]==null) bdtip[i]=0; if(i == index - 1){ bdtip[i] = value; } } } bdtip = bdtip.join('-'); document.cookie = "BDTIP=" + bdtip+ ";expires=Wed, 28-Nov-37 01:45:46 GMT;path=/;domain=.baidu.com";}</SCRIPT>
<DIV id=main align=left><!--[if IE]>
<SCRIPT>
var objmain = document.getElementById("main");
function updatesize(){ var bodyw = window.document.body.offsetWidth; if(bodyw <= 790) objmain.style.width="772px"; else if(bodyw >= 1016) objmain.style.width="996px"; else objmain.style.width="100%"; }
updatesize(); window.onresize = updatesize;
</SCRIPT>
<![endif]-->
<DIV id=header>
<DIV class=lc>
<DIV class=rc></DIV></DIV>
<DIV class=tit><A class=titlink title="青春诱惑的空间 http://hi.baidu.com/青春诱惑"
href="http://hi.baidu.com/Çà´ºÓÕ»ó">青春诱惑</A></DIV>
<DIV class=desc></DIV>
<DIV id=tabline></DIV>
<DIV id=tab><A href="http://hi.baidu.com/Çà´ºÓÕ»ó">主页</A><A class=on
href="http://hi.baidu.com/Çà´ºÓÕ»ó/blog">博客</A><A
href="http://hi.baidu.com/Çà´ºÓÕ»ó/album">相册</A><SPAN>|</SPAN><A
href="http://hi.baidu.com/Çà´ºÓÕ»ó/profile">个人档案</A> <SPAN>|</SPAN><A
href="http://hi.baidu.com/Çà´ºÓÕ»ó/friends">好友</A> </DIV></DIV>
<DIV class=stage>
<DIV class=stagepad>
<DIV style="WIDTH: 100%">
<TABLE class=modth cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=modtl width=7> </TD>
<TD class=modtc noWrap>
<DIV class=modhead><SPAN class=modtit>查看文章</SPAN></DIV></TD>
<TD class=modtc noWrap align=right></TD>
<TD class=modtr width=7> </TD></TR></TBODY></TABLE>
<DIV class=modbox id=m_blog>
<DIV class=tit>Visual C#中用WMI控制远程计算机</DIV>
<DIV class=date>2009年04月03日 星期五 上午 11:50</DIV>
<TABLE style="TABLE-LAYOUT: fixed">
<TBODY>
<TR>
<TD>
<DIV class=cnt
id=blog_text> 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当前窗口切换到【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的方法有所帮助。 </DIV></TD></TR></TBODY></TABLE><BR>
<DIV class=opt><A title=查看该分类中所有文章
href="http://hi.baidu.com/Çà´ºÓÕ»ó/blog/category/c#">类别:c#</A> | <A
title=将此文章添加到百度搜藏 onclick="return addToFavor();"
href="http://cang.baidu.com/do/add" target=_blank>添加到搜藏</A> | 浏览(<SPAN
id=result></SPAN>) | <A
href="http://hi.baidu.com/Çà´ºÓÕ»ó/blog/item/d445708a2282e81ac8fc7a8b.html#send">评论</A> (0)
<SCRIPT language=javascript>
/*<![CDATA[*/
var pre = [true,'vs2005 的网格布局', 'vs2005 的网格布局','/%C7%E0%B4%BA%D3%D5%BB%F3/blog/item/096c5142fa7de3199313c688.html'];
var post = [true,'NavigateUrl','NavigateUrl', '/%C7%E0%B4%BA%D3%D5%BB%F3/blog/item/6bdf4511d80c9ef4c3ce791f.html'];
if(pre[0] || post[0]){
document.write('<div style="height:5px;line-height:5px;"> </div><div id="in_nav">');
if(pre[0]){
document.write('上一篇:<a href="' + pre[3] + '" title="' + pre[1] + '">' + pre[2] + '</a> ');
}
if(post[0]){
document.write('下一篇:<a href="' + post[3] + '" title="' + post[1] + '">' + post[2] + '</a>');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -