程式設計使用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物件程式設計
- SQL Server 2005--無法連線到WMI提供程式SQLServer
- 關於用WMI獲取系統資訊——程式設計實現(轉)程式設計
- MFC控制元件程式設計:列表控制元件、樹控制元件、屬性頁對話方塊 (未完)控制元件程式設計
- CXF入門教程(4) -- 設定上下文連線屬性
- Qt編寫自定義控制元件屬性設計器QT控制元件
- 元物件、 屬性 和 反射程式設計物件反射程式設計
- 程式設計與線性代數程式設計
- 使用Python玩轉WMI進行Win32api/com進行Windows程式設計開發PythonWin32APIWindows程式設計
- 用程式設定COM+應用程式的屬性。 (轉)
- 程式設計必讀:Netscape 6 支援的物件和屬性列表 (轉)程式設計物件
- 無法連線到WMI 提供程式0x80041010
- pythonsocket程式設計之三:長連線、短連線以及心跳(轉藥師Aric的文章)Python程式設計
- 好程式設計師分享placeholder屬性詳解程式設計師
- Socket程式設計-長連線與短連線,心跳(keep-alive)程式設計Keep-Alive
- win10怎樣更改連線屬性_win10怎麼更改網路屬性Win10
- ITEM中的屬性控制
- TWebBrowser控制元件與MSHTML庫連線 (轉)Web控制元件HTML
- YII2連線左表子屬性不顯示
- IOS 網路程式設計 + 後臺保持連線iOS程式設計
- 電商產品設計:商品的基本屬性與銷售屬性
- DW屬性設定的總結 (轉)
- 連結<a>為空就使用href屬性值填充
- Python - 物件導向程式設計 - 類變數、例項變數/類屬性、例項屬性Python物件程式設計變數
- 轉-配置openldap使用SSL連線LDA
- Delphi程式設計:完全控制桌面的實現 (轉)程式設計
- 好程式設計師web前端分享css常用屬性縮寫程式設計師Web前端CSS
- Java程式設計筆記,springboot常用屬性彙總Java程式設計筆記Spring Boot
- 程式設計師生存定律-打造屬於自己的稀缺性程式設計師
- 程式設計師生存定律——打造屬於自己的稀缺性程式設計師
- 程式設計師生存定律:打造屬於自己的稀缺性程式設計師
- 如何使用 C++ 11 實現 C# 屬性概念設計C++C#
- js prototype屬性使用程式碼例項JS
- 回望30年:“連線性”如何影響硬體設計?——資訊圖
- 計算屬性
- QT程式設計之——使用全域性變數QT程式設計變數
- 連結a物件的pathname屬性物件