实现代码:

知识运用:
ConnectionOptions类 //指示生成WMI连接所需要的所有设置
其Username Passworr属性
ManagementScope类 //表示管理操作的范围 (命名空间)
public ManagementScope (string path , ConnectionOption options)
public void Connect() //该方法用来将此ManagementScope连接到实际的WMI范围
实现代码:
/// <summary>
/// 关闭或重启远程计算机
/// </summary>
/// <param name="doinfo">执行的操作</param>
public void CloseComputer(string doinfo)
{
ConnectionOptions co = new ConnectionOptions(); //创建ConnectionOptions对象
co.Username =textBox2.Text; //设置远程计算机用户名
co.Password = textBox3.Text; //设置远程计算机登陆密码
ManagementScope ms = new ManagementScope("\\" + textBox1.Text + "\root\cimv2:Win32_Service", co);
try
{
ms.Connect(); //连接远程对象
ObjectQuery obj1 = new ObjectQuery("select * from Win32_OperationSystem"); //创建ObjectQuery对象
ManagementObjectSearcher searcher = new ManagementObjectSearcher(obj1); //创建ManagementObjectSearcher对象
ManagementObjectCollection collection = searcher.Get(); //得到WMI控制
foreach(ManagementObject m in collection)
{
string[] str = {""};
m.InvokeMethod(doinfo,str);
}
}
catch (Exception et)
{
MessageBox.Show(et.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
CloseComputer("Shutdown");
}
private void button2_Click(object sender, EventArgs e)
{
CloseComputer("Reboot");
}