通過檢視WMI對象,可以發現有不少的類同時具有屬性和方法。例如類"Win32_NetworkAdapterConfiguration",j就具有不少的方法和屬性,可以使用以下指令查詢:
Get-WmiObject Win32_NetworkAdapterConfiguration | Get-Member -MemberType Methods | Format-List
列出的可用的方法有:
DisableIPSec
EnableDHCP
EnableIPSec
EnableStatic
ReleaseDHCPLease
RenewDHCPLease
SetDNSDomain
SetDNSServerSearchOrder
SetDynamicDNSRegistration
SetGateways
SetIPConnectionMetric
SetIPXFrameTypeNetworkPairs
SetTcpipNetbios
SetWINSServer
ConvertFromDateTime
ConvertToDateTime
Delete
GetType
Put
同樣,使用如下指令查詢其屬性成員:
Get-WmiObject Win32_NetworkAdapterConfiguration | Get-Member -MemberType Property | Format-List
通過以上指令查詢,類"Win32_NetworkAdapterConfiguration"有着方法"EnableDHCP"和屬性"IPEnabled"。下面,就用此這兩個成員來說明如何調用類的方法。
在這個類中,方法"EnableDHCP"的作用是開啟、關閉網絡擴充卡DHCP功能,屬性"IPEnable"則是一個bool值,反應是否有IP配置,有則為"true"反之則為"false"。用"IPEnable"可以過濾我們可以跳過任何斷開的、虛拟的網絡适配裝置。
例如我們可以使用如下指令來改變DHCP設定:
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{
$_.IPEnabled -eq "true"}
foreach($NIC in $Network){
$NIC.EnableDHCP()}
這段腳本首先會判斷"IPEnable"是否為真,如果是,則開啟DHCP,否則不進行操作。
類"Win32_NetworkAdapterConfiguration"還具有另外的方法,如"$NIC.SetDNSServerSearchOrder()",可以使用這個方法改變DNS設定,改變是否“自動擷取DNS”的設定。
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"}
$NIC.EnableDHCP()
$NIC.SetDNSServerSearchOrder()
}
需要注意的是,在調用不同的方法時,需要不同類型的資料參數,這一點需要非常留心。在前文查詢方法的指令輸出中,在"Definition"字段便可以看到具體資料格式要求:
<a href="http://blog.51cto.com/attachment/201004/101928444.png" target="_blank"></a>
本文轉自melvillo 51CTO部落格,原文連結:http://blog.51cto.com/marui/298520,如需轉載請自行聯系原作者