探索PowerShell(十四) 使用WMI對象的方法
更新時間:2012年12月05日 17:53:21 作者:
上一篇文章中介紹了WMI的基礎(chǔ)內(nèi)容,主要講了WMI的屬性值的查看,文中還提到,WMI不僅具有屬性,還具有方法。這一節(jié)就來具體講一下如何調(diào)用WMI對象方法
上一篇文章中介紹了WMI的基礎(chǔ)內(nèi)容,主要講了WMI的屬性值的查看,文中還提到,WMI不僅具有屬性,還具有方法。這一節(jié)就來具體講一下如何調(diào)用WMI對象方法。
通過查看WMI對象,可以發(fā)現(xiàn)有不少的類同時具有屬性和方法。例如類"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"。下面,就用此這兩個成員來說明如何調(diào)用類的方法。
在這個類中,方法"EnableDHCP"的作用是開啟、關(guān)閉網(wǎng)絡(luò)適配器DHCP功能,屬性"IPEnable"則是一個bool值,反應(yīng)是否有IP配置,有則為"true"反之則為"false"。用"IPEnable"可以過濾我們可以跳過任何斷開的、虛擬的網(wǎng)絡(luò)適配設(shè)備。
例如我們可以使用如下命令來改變DHCP設(shè)置:
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{
$_.IPEnabled -eq "true"}
foreach($NIC in $Network){
$NIC.EnableDHCP()}
這段腳本首先會判斷"IPEnable"是否為真,如果是,則開啟DHCP,否則不進行操作。
類"Win32_NetworkAdapterConfiguration"還具有另外的方法,如"$NIC.SetDNSServerSearchOrder()",可以使用這個方法改變DNS設(shè)置,改變是否“自動獲取DNS”的設(shè)置。
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"}
foreach($NIC in $Network){
$NIC.EnableDHCP()
$NIC.SetDNSServerSearchOrder()
}
需要注意的是,在調(diào)用不同的方法時,需要不同類型的數(shù)據(jù)參數(shù),這一點需要非常留心。在前文查詢方法的命令輸出中,在"Definition"字段便可以看到具體數(shù)據(jù)格式要求:
通過查看WMI對象,可以發(fā)現(xiàn)有不少的類同時具有屬性和方法。例如類"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"。下面,就用此這兩個成員來說明如何調(diào)用類的方法。
在這個類中,方法"EnableDHCP"的作用是開啟、關(guān)閉網(wǎng)絡(luò)適配器DHCP功能,屬性"IPEnable"則是一個bool值,反應(yīng)是否有IP配置,有則為"true"反之則為"false"。用"IPEnable"可以過濾我們可以跳過任何斷開的、虛擬的網(wǎng)絡(luò)適配設(shè)備。
例如我們可以使用如下命令來改變DHCP設(shè)置:
復(fù)制代碼 代碼如下:
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{
$_.IPEnabled -eq "true"}
foreach($NIC in $Network){
$NIC.EnableDHCP()}
這段腳本首先會判斷"IPEnable"是否為真,如果是,則開啟DHCP,否則不進行操作。
類"Win32_NetworkAdapterConfiguration"還具有另外的方法,如"$NIC.SetDNSServerSearchOrder()",可以使用這個方法改變DNS設(shè)置,改變是否“自動獲取DNS”的設(shè)置。
復(fù)制代碼 代碼如下:
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"}
foreach($NIC in $Network){
$NIC.EnableDHCP()
$NIC.SetDNSServerSearchOrder()
}
需要注意的是,在調(diào)用不同的方法時,需要不同類型的數(shù)據(jù)參數(shù),這一點需要非常留心。在前文查詢方法的命令輸出中,在"Definition"字段便可以看到具體數(shù)據(jù)格式要求:

相關(guān)文章
powershell解決win10開始菜單和通知中心無法打開
這篇文章主要介紹了powershell解決win10開始菜單和通知中心無法打開的相關(guān)資料,需要的朋友可以參考下2015-10-10PowerShell實現(xiàn)查詢打開某個文件的默認應(yīng)用程序
這篇文章主要介紹了PowerShell實現(xiàn)查詢打開某個文件的默認應(yīng)用程序,本文通過C#調(diào)用Windows API來實現(xiàn)這個需求,需要的朋友可以參考下2015-06-06使用PowerShell操作Windows服務(wù)的命令小結(jié)
這篇文章主要介紹了使用PowerShell操作Windows服務(wù)的命令小結(jié),本文只是做了一個命令列表,需要的朋友可以參考下2014-08-08PowerShell入門教程之高效使用PowerShell交互式運行環(huán)境的幾個小技巧
這篇文章主要介紹了PowerShell入門教程之高效使用PowerShell交互式運行環(huán)境的幾個小技巧,本文也可以說是使用PowerShell的一些好習(xí)慣,需要的朋友可以參考下2014-10-10Windows Powershell 執(zhí)行文件和腳本
PowerShell腳本提供了一個方便的方法來自動化各種瑣事。下面是關(guān)于PowerShell的一些基本概念,對于PowerShell初學(xué)者,掌握這些概念有助于加深對PowerShell腳本的理解。2014-09-09PowerShell中使用Get-Date獲取日期時間并格式化輸出的例子
這篇文章主要介紹了PowerShell中使用Get-Date獲取日期時間并格式化輸出的例子,本文講解了直接調(diào)用Get-Date、在Write-Host中使用Get-Date、格式化輸出的方法,需要的朋友可以參考下2014-08-08PowerShell入門教程之遠程操作運行PowerShell的方法
這篇文章主要介紹了PowerShell入門教程之遠程操作運行PowerShell的方法,本文講解了配置遠程基礎(chǔ)結(jié)構(gòu)、執(zhí)行遠程操作等內(nèi)容,需要的朋友可以參考下2014-10-10PowerShell小技巧之讀取Windows產(chǎn)品密鑰
這篇文章主要給大家分享一段使用PowerShell讀取Windows產(chǎn)品密鑰的小技巧,非常的簡單實用,有需要的朋友可以參考下。2014-10-10