利用 System.Management 命名空間,通過 WMI 連接遠程主機並調用 Win32_OperatingSystem.Shutdown 方法實現遠程關機/重啟。
using System;
using System.Management;
using System.Windows.Forms;
namespace Ex18_11
{
public partial class Form1 : Form
{
public Form1() { InitializeComponent(); }
private void btnShutdown_Click(object sender, EventArgs e)
{
ConnectionOptions options = new ConnectionOptions
{
Username = "administrator",
Password = "12345"
};
ManagementScope scope = new ManagementScope(
@"\\121.35.174.154\root\cimv2", options);
scope.Connect();
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection results = searcher.Get();
foreach (ManagementObject obj in results)
{
obj.InvokeMethod("Shutdown", null); // "Reboot" 為重啟
}
}
}
}
System.Management.dll。Win32_Process.Create 遠程啟動程序等。