首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實作遠端電腦重啟(一):WMI 架構、命名空間與核心類別

     編輯:關於C語言

情境與挑戰

傳統做法需在遠端執行客戶端程式。若只知道遠端管理員帳號、不允許部署客戶端,利用 C# 配合 WMI 仍可輕鬆完成遠端重啟。

WMI 理論基礎

Windows Management Instrumentation (WMI) 支援透過網際網路管理系統,提供一致管理視圖。安全性建立在作業系統既有安全之上,預設 Administrators 群組擁有完整控制權。存取以命名空間為基礎,預設 root\cimv2。

.NET Framework SDK 提供 System.Management 命名空間直接操作 WMI。

核心六大類別

類別用途
ConnectionOptions定義遠端管理員帳號/密碼
ManagementScope以指定帳號連接目標電腦 (名稱/IP)
ObjectQuery定義要執行的 WMI 查詢操作
ManagementObjectSearcher從已連線電腦取得可用 WMI 操作
ManagementObjectCollection儲存查詢結果集合
ManagementObject呼叫遠端 WMI 方法 (如 Reboot)

關鍵步驟與程式碼

1. 連接遠端電腦

ConnectionOptions options = new ConnectionOptions();
options.Username = "管理者帳號";
options.Password = "管理者密碼";
ManagementScope scope = new ManagementScope("\\\\" + "遠端電腦名或IP" + "\\root\\cimv2", options);
scope.Connect();

2. 取得可用 WMI 操作

ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher query1 = new ManagementObjectSearcher(scope, oq);
ManagementObjectCollection queryCollection1 = query1.Get();

3. 呼叫 Reboot 方法重啟

foreach (ManagementObject mo in queryCollection1)
{
    string[] args = { "" };
    mo.InvokeMethod("Reboot", args);
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved