private void button1_Click(object sender, EventArgs e)
{
ConnectionOptions opt = new ConnectionOptions();
opt.Username = textBox2.Text;
opt.Password = textBox3.Text;
try
{
ManagementScope scope = new ManagementScope($@"\\{textBox1.Text}\root\cimv2", opt);
scope.Connect();
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection results = searcher.Get();
foreach (ManagementObject mo in results)
{
string[] args = { "" };
if (comboBox1.Text == "重新啟動")
mo.InvokeMethod("Reboot", args);
else if (comboBox1.Text == "遠程關機")
mo.InvokeMethod("Shutdown", args);
else
MessageBox.Show("選擇不正確的操作!", "錯誤!");
}
}
catch (Exception ex)
{
MessageBox.Show($"連接 {textBox1.Text} 出錯:{ex.Message}");
}
}

圖 10:WMI 遠端控制運行介面
WMI 讓遠端管理無需部署客戶端程式,極大簡化架構。本範例實現重開機/關機兩大核心功能,展示 ManagementScope 連線、ObjectQuery WQL 查詢、InvokeMethod 執行遠端方法的標準流程。