C#程序实现远程开关机?给点思路吧
解决方案 »
- 升级到IE8后,不能打开CSDN主页的下半部分了,谁知道怎么解决?
- DevExpress.XtraGrid.Views.Grid.GridView设置行
- 类之间的关系
- 构造函数对象的创建
- 关于动态修改listbox字体 颜色的问题
- DataGridView中的一列上添加DateTimePicker控件后不会排序??
- c# 如何BINDING绑定radiobutton控件
- wpf中,如何用若干点动态组成一个bitmap?
- C# imageList问题
- OleDbDataReader.Read()不会自动转到下一行吗?在线等,晚上结帖
- 一个关于ActiveX的问题
- 有人帮吗看看这段代码哪出问题(很短 就一个小控件)
{
//此处需要添加System.Management的引用
ConnectionOptions op = new ConnectionOptions();
//获取远程计算机的用户名
op.Username = txtAdmin.Text.Trim();
//获取远程计算机的密码
op.Password = txtPassword.Text.Trim(); ManagementScope scope = new ManagementScope("\\\\" + textBox1.Text + "\\root\\cimv2", op); scope.Connect(); ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher query = new ManagementObjectSearcher(scope, oq); ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject obj in queryCollection)
{
obj.InvokeMethod("ShutDown", null); //命令换成reboot就是重启
} } 方法2ConnectionOptions options = new ConnectionOptions();
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 ); //报错
}
1。你必须有足够的管理权限
2。远程机必须在bions里开启了远程唤醒功能