程式設計使用WMI 控制連線屬性 (轉)
using System;
using System.Management;
namespace ArLi.CommonPrj {
public class Change{
///
/// Build of ArLi .6.3
///
public static readonly System.Version myVersion = new System.Version(1,1);
private ManagementBase iObj = null;
private ManagementBaseObject oObj = null;
private ManagementClass mc = new ManagementClass("workAdapterConfiguration");
private readonly ManagementObjectCollection moc;
///
/// 例:
///
/// ArLi.CommonPrj.ChangeIP o = new ArLi.CommonPrj.ChangeIP();
/// string[] ipList = new string[]{"192.168.0.253","192.168.0.250"};
/// string[] subnetList = new string[]{"255.255.255.0","255.255.255.0"};
/// o.ChangeTo(ipList,subnetList);
///
///
public ChangeIP(){
moc = mc.GetInstances();
}
///
/// 列表
/// 對應子網掩碼列表
public void ChangeTo(string[] ipAddr,string[] subnetMask) {
foreach(ManagementObject mo in moc) {
if(! (bool) mo["IPEnabled"]) continue;
iObj = mo.GetMethodParameters( "EnableStatic" );
iObj["IPAddress"] = ipAddr;
iObj["SubnetMask"] = subnetMask;
oObj = mo.InvokeMethod("EnableStatic", iObj, null);
}
}
///
/// IP地址列表
/// 對應子網掩碼列表
/// 閘道器列表
/// 閘道器介面躍點數列表
public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric) {
foreach(ManagementObject mo in moc) {
if(! (bool) mo["IPEnabled"]) continue;
iObj = mo.GetMethodParameters("EnableStatic");
iObj["IPAddress"] = ipAddr;
iObj["SubnetMask"] = subnetMask;
oObj = mo.InvokeMethod("EnableStatic", iObj, null);
iObj = mo.GetMethodParameters("SetGateways");
iObj["DefaultIPGateway"] = gateways;
iObj["GatewayCostMetric"] = gatewayCostMetric;
oObj = mo.InvokeMethod("SetGateways", iObj, null);
}
}
///
/// IP地址列表
/// 對應子網掩碼列表
/// 閘道器列表
/// 閘道器介面躍點數列表
/// DNS 列表
public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric, string[] dnsServer) {
foreach(ManagementObject mo in moc) {
if(! (bool) mo["IPEnabled"]) continue;
iObj = mo.GetMethodParameters("EnableStatic");
iObj["IPAddress"] = ipAddr;
iObj["SubnetMask"] = subnetMask;
oObj = mo.InvokeMethod("EnableStatic", iObj, null);
iObj = mo.GetMethodParameters("SetGateways");
iObj["DefaultIPGateway"] = gateways;
iObj["GatewayCostMetric"] = gatewayCostMetric;
oObj = mo.InvokeMethod("SetGateways", iObj, null);
iObj = mo.GetMethodParameters("SetDNSServerSearchOrder");
iObj["DNSServerSearchOrder"] = dnsServer;
oObj = mo.InvokeMethod("SetDNSServerSearchOrder", iObj, null);
}
}
///
public void EnableDHCP() {
foreach(ManagementObject mo in moc) {
if(! (bool) mo["IPEnabled"]) continue;
if(! (bool)mo["DHCPEnabled"]) {
iObj = mo.GetMethodParameters("EnableDHCP");
oObj = mo.InvokeMethod("EnableDHCP", iObj, null);
}
}
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-959158/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MQTT 5.0 連線屬性MQQT
- Python - 物件導向程式設計 - 公共屬性、保護屬性、私有屬性Python物件程式設計
- Qt編寫自定義控制元件屬性設計器QT控制元件
- 程式設計與線性代數程式設計
- 好程式設計師分享placeholder屬性詳解程式設計師
- Java程式設計筆記,springboot常用屬性彙總Java程式設計筆記Spring Boot
- Socket程式設計-長連線與短連線,心跳(keep-alive)程式設計Keep-Alive
- delphi 常用控制元件屬性設定說明控制元件
- Python - 物件導向程式設計 - 類變數、例項變數/類屬性、例項屬性Python物件程式設計變數
- 四、GO程式設計模式:委託和反轉控制Go程式設計設計模式
- win10怎樣更改連線屬性_win10怎麼更改網路屬性Win10
- 好程式設計師web前端分享css常用屬性縮寫程式設計師Web前端CSS
- echarts grid屬性控制邊距Echarts
- 電商產品設計:商品的基本屬性與銷售屬性
- YII2連線左表子屬性不顯示
- 使用Visual Studio在家裡連線到公司的電腦繼續程式設計?程式設計
- JS獲取照片拍攝的角度屬性,用於旋轉控制JS
- 深入解析 Java 物件導向程式設計與類屬性應用Java物件程式設計
- java 程式設計常混淆的一些屬性,方法,工具類Java程式設計
- 好程式設計師web前端分享CSS屬性組成及作用程式設計師Web前端CSS
- 好程式設計師web前端培訓分享Javascript中原型屬性程式設計師Web前端JavaScript原型
- 檔案屬性-3.2.linux應用程式設計和網路程式設計第2部分Linux程式設計
- Java常見的系統屬性值及如何通過Java程式設計獲得系統屬性值Java程式設計
- 計算屬性
- Android控制元件的fitSystemWindows屬性Android控制元件Windows
- 使用程式碼修改SAP CRM附件的屬性
- 詳情屬性圖示設計參考
- lombok~避免Boolean屬性使用預設的方法LombokBoolean
- 前端使用 Konva 實現視覺化設計器(12)- 連線線 - 直線前端視覺化
- 從屬性剋制延伸而來的多屬性隊伍養成設計
- jQuery設定disabled屬性與移除disabled屬性jQuery
- MySQL全面瓦解20:可程式設計性之流程控制語句MySql程式設計
- Python網路程式設計實現TCP和UDP連線Python程式設計TCPUDP
- 連線到一個Office 365組 - 程式設計方式 (二)程式設計
- 連線到一個Office 365組 - 程式設計方式 (一)程式設計
- 長連線的心跳及重連設計
- 前端使用 Konva 實現視覺化設計器(19)- 連線線 - 直線、折線前端視覺化
- 系統程式設計-網路-tcp客戶端伺服器程式設計模型(續)、連線斷開、獲取連線狀態場景程式設計TCP客戶端伺服器模型
- 從線性/多路線到開放世界,設計焦點應當如何轉移?