探索PowerShell(十四) 使用WMI對(duì)象的方法
更新時(shí)間:2012年12月05日 17:53:21 作者:
上一篇文章中介紹了WMI的基礎(chǔ)內(nèi)容,主要講了WMI的屬性值的查看,文中還提到,WMI不僅具有屬性,還具有方法。這一節(jié)就來(lái)具體講一下如何調(diào)用WMI對(duì)象方法
上一篇文章中介紹了WMI的基礎(chǔ)內(nèi)容,主要講了WMI的屬性值的查看,文中還提到,WMI不僅具有屬性,還具有方法。這一節(jié)就來(lái)具體講一下如何調(diào)用WMI對(duì)象方法。
通過(guò)查看WMI對(duì)象,可以發(fā)現(xiàn)有不少的類同時(shí)具有屬性和方法。例如類"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 通過(guò)以上命令查詢,類"Win32_NetworkAdapterConfiguration"有著方法"EnableDHCP"和屬性"IPEnabled"。下面,就用此這兩個(gè)成員來(lái)說(shuō)明如何調(diào)用類的方法。
在這個(gè)類中,方法"EnableDHCP"的作用是開(kāi)啟、關(guān)閉網(wǎng)絡(luò)適配器DHCP功能,屬性"IPEnable"則是一個(gè)bool值,反應(yīng)是否有IP配置,有則為"true"反之則為"false"。用"IPEnable"可以過(guò)濾我們可以跳過(guò)任何斷開(kāi)的、虛擬的網(wǎng)絡(luò)適配設(shè)備。
例如我們可以使用如下命令來(lái)改變DHCP設(shè)置:
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{
$_.IPEnabled -eq "true"}
foreach($NIC in $Network){
$NIC.EnableDHCP()}
這段腳本首先會(huì)判斷"IPEnable"是否為真,如果是,則開(kāi)啟DHCP,否則不進(jìn)行操作。
類"Win32_NetworkAdapterConfiguration"還具有另外的方法,如"$NIC.SetDNSServerSearchOrder()",可以使用這個(gè)方法改變DNS設(shè)置,改變是否“自動(dòng)獲取DNS”的設(shè)置。
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"}
foreach($NIC in $Network){
$NIC.EnableDHCP()
$NIC.SetDNSServerSearchOrder()
}
需要注意的是,在調(diào)用不同的方法時(shí),需要不同類型的數(shù)據(jù)參數(shù),這一點(diǎn)需要非常留心。在前文查詢方法的命令輸出中,在"Definition"字段便可以看到具體數(shù)據(jù)格式要求:
通過(guò)查看WMI對(duì)象,可以發(fā)現(xiàn)有不少的類同時(shí)具有屬性和方法。例如類"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 通過(guò)以上命令查詢,類"Win32_NetworkAdapterConfiguration"有著方法"EnableDHCP"和屬性"IPEnabled"。下面,就用此這兩個(gè)成員來(lái)說(shuō)明如何調(diào)用類的方法。
在這個(gè)類中,方法"EnableDHCP"的作用是開(kāi)啟、關(guān)閉網(wǎng)絡(luò)適配器DHCP功能,屬性"IPEnable"則是一個(gè)bool值,反應(yīng)是否有IP配置,有則為"true"反之則為"false"。用"IPEnable"可以過(guò)濾我們可以跳過(guò)任何斷開(kāi)的、虛擬的網(wǎng)絡(luò)適配設(shè)備。
例如我們可以使用如下命令來(lái)改變DHCP設(shè)置:
復(fù)制代碼 代碼如下:
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{
$_.IPEnabled -eq "true"}
foreach($NIC in $Network){
$NIC.EnableDHCP()}
這段腳本首先會(huì)判斷"IPEnable"是否為真,如果是,則開(kāi)啟DHCP,否則不進(jìn)行操作。
類"Win32_NetworkAdapterConfiguration"還具有另外的方法,如"$NIC.SetDNSServerSearchOrder()",可以使用這個(gè)方法改變DNS設(shè)置,改變是否“自動(dòng)獲取DNS”的設(shè)置。
復(fù)制代碼 代碼如下:
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"}
foreach($NIC in $Network){
$NIC.EnableDHCP()
$NIC.SetDNSServerSearchOrder()
}
需要注意的是,在調(diào)用不同的方法時(shí),需要不同類型的數(shù)據(jù)參數(shù),這一點(diǎn)需要非常留心。在前文查詢方法的命令輸出中,在"Definition"字段便可以看到具體數(shù)據(jù)格式要求:
相關(guān)文章
Windows Powershell強(qiáng)類型數(shù)組
強(qiáng)類型數(shù)組可以理解為強(qiáng)制數(shù)據(jù)類型的數(shù)組,也就是一個(gè)數(shù)組里只包含一種數(shù)據(jù)類型,強(qiáng)制轉(zhuǎn)換數(shù)組語(yǔ)法的優(yōu)勢(shì)就是如果使用分號(hào)代替逗號(hào)分隔值,PowerShell將每個(gè)值看作命令文本,PowerShell會(huì)執(zhí)行它并且存儲(chǔ)結(jié)果。2014-09-09
PowerShell創(chuàng)建Byte數(shù)組例子
這篇文章主要介紹了PowerShell創(chuàng)建Byte數(shù)組例子,Byte數(shù)組即字節(jié)數(shù)組,它是一種強(qiáng)類型的數(shù)組,需要的朋友可以參考下2014-08-08
腳本實(shí)現(xiàn)SSL證書(shū)到期監(jiān)控示例
這篇文章主要介紹了腳本實(shí)現(xiàn)SSL證書(shū)到期監(jiān)控示例,感興趣的朋友可以試著實(shí)現(xiàn),希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-03-03
PowerShell和FFmpeg查找Windows中所有損壞音頻文件
這篇文章主要為大家介紹了Windows中查找出所有損壞的音頻文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
PowerShell小技巧之從函數(shù)中返回多個(gè)值
本文主要是介紹了一個(gè)可以讓一個(gè)PS腳本函數(shù)需要返回多個(gè)值的方法,它能輕松的返回你想要的多個(gè)信息,并將結(jié)果分配給多個(gè)變量,有需要的朋友參考下2014-09-09
PowerShell定義函數(shù)參數(shù)的2種方法和傳參方法實(shí)例
這篇文章主要介紹了PowerShell定義函數(shù)參數(shù)的2種方法和使用方法實(shí)例,簡(jiǎn)潔易懂的好文,需要的朋友可以參考下2014-07-07
PowerShell實(shí)現(xiàn)按條件終止管道的方法
這篇文章主要介紹了PowerShell實(shí)現(xiàn)按條件終止管道的方法,有時(shí)你可能想在管道運(yùn)行在某個(gè)特定的條件下,終止管道的運(yùn)行,本文就講解了這樣一種方法,需要的朋友可以參考下2015-06-06

