什么是WMI
WMI可以從計(jì)算機(jī)中收集大量系統(tǒng)信息。但有時(shí)候這些信息不易看懂,另外文檔也不夠友好。WMI是一個(gè)外部技術(shù),PowerShell僅僅與其接口進(jìn)行交互而已。
在最頂層,WMI被組織成命名空間(namespaces)??梢园衙臻g想象為關(guān)聯(lián)到特定產(chǎn)品或技術(shù)的一個(gè)文件夾。比如,“root\CIMv2”,該命名空間包含了所有Windows操作系統(tǒng)和計(jì)算機(jī)硬件信息。而“root\MicrosoftDNS”命名空間包含了所有關(guān)于DNS服務(wù)器(假設(shè)你已經(jīng)在計(jì)算機(jī)中安裝了該角色)的信息。
在命名空間中,WMI被分成一系列的類,每個(gè)類都是可用于WMI查詢的管理單元。比如,在“root\SecurityCenter”中的“Antivirus-Product”類被設(shè)計(jì)用于保存反間諜軟件的信息;在“root\CIMv2”中的“Win32_LogicalDisk”類被設(shè)計(jì)用于保存邏輯磁盤的信息。但是即使一個(gè)計(jì)算機(jī)上存在某個(gè)類,也不代表計(jì)算機(jī)實(shí)際上安裝了對應(yīng)組件。比如無論是否安裝了磁帶驅(qū)動(dòng)程序?!癢in32_TapeDrive”類在所有的Windows版本上都存在。不是所有的計(jì)算機(jī)都包含相同的WMI命名空間或類。
WMI的未來
在WMI大部分生命周期中,微軟都沒有把過多的精力放在對其內(nèi)部控制上(最近有所好轉(zhuǎn))。微軟為WMI制定了一系列的編程標(biāo)準(zhǔn),但是產(chǎn)品組或多或少把精力放在如何實(shí)現(xiàn)類和是否對其文檔化。結(jié)果就是使得WMI變得混亂。
所謂的“WMI Cmdlets”,例如“Get-WmiObject”與“Invoke-WmiMethod”——這些都是遺留命令,意味著它們依舊能工作,但是微軟不會(huì)對它們進(jìn)行后續(xù)開發(fā)投入。它們與遠(yuǎn)程過程調(diào)用(RPC)交互,也就是說,只有在防火墻支持狀態(tài)審查時(shí)才能通過防火墻(實(shí)際上很難)。
新版的“CIM Cmdlets”,例如“Get-CimInstance”與“Invoke-CimMethod”——它們或多或少等價(jià)于舊版本的“WMI Cmdlets”,但是它們通過WS-MAN(由Windows遠(yuǎn)程管理服務(wù)實(shí)現(xiàn))交互,替代原有的RPCs。
在Windows Server 2012 R2以及更新版本中,舊版的WMI默認(rèn)為禁用狀態(tài),因此盡可能使用CIM。除此之外,CIM cmdlet可以使用舊版的RPC(或DCOM)協(xié)議通訊,因此與老機(jī)器進(jìn)行通訊時(shí),你也可以僅使用CIM cmdlet。
在執(zhí)行WMI篩選的時(shí)候,篩選語法是傳遞到WMI,而不是由PowerShell處理,所以你必須使用WMI規(guī)定的語法去替代內(nèi)置的PowerShell操作符。
Get-WmiObject win32_process -filter {name='notepad.exe'} |Invoke-WmiMethod -Name Terminate
WMI的(微弱)優(yōu)勢
雖然WMI所需的RPC網(wǎng)絡(luò)通信難以穿透防火墻,但WMI能夠適用的計(jì)算機(jī)數(shù)量最多(當(dāng)前來說);CIM只需要更新更簡單的WS-MAN通信,但在老版本的Windows默認(rèn)情況下,并沒有安裝WS-MAN。
WMI串行與并行執(zhí)行
Get-WMIObject命令會(huì)與一臺(tái)或多臺(tái)遠(yuǎn)程計(jì)算機(jī)進(jìn)行連接,但是通過串行方式實(shí)現(xiàn),效率比較低。
備注:gwmi是Get-WMIObject的縮寫
gwmi -class win32_bios -computer server-r2,localhost | format-table @{label='ComputerName';expression={$_.__SERVER}},
@{label='BIOSSerial';expression={$_.SerialNumber}},
@{label='OSBuild';expression= {gwmi -class \win32_operatingsystem -computer $_.__SERVER | select-object -expand BuildNumber}} -autosize
在-ScriptBlock參數(shù)(或者是該參數(shù)的別名,-Command)中指定的任意命令都會(huì)并行發(fā)送到指定的每臺(tái)計(jì)算機(jī)。可以同時(shí)訪問多達(dá)32臺(tái)計(jì)算機(jī)(除非你修改了-ThrottleLimit參數(shù)允許同時(shí)訪問更多或者更少的計(jì)算機(jī)),所以當(dāng)你指定了超過32個(gè)計(jì)算機(jī)名稱,僅有前32臺(tái)計(jì)算機(jī)會(huì)開始執(zhí)行該命令。當(dāng)在前32臺(tái)計(jì)算機(jī)即將結(jié)束時(shí),剩余的計(jì)算機(jī)才可以開始執(zhí)行這些命令。另外,當(dāng)在所有計(jì)算機(jī)上都執(zhí)行結(jié)束后,上層的父作業(yè)會(huì)返回一個(gè)完整的狀態(tài)。
備注:Get-CimInstance是Get-WMIObject的新式寫法
invoke-command -ScriptBlock { Get-CimInstance -ClassName win32_process } -ComputerName WIN8 -Credential DOMAIN\Administrator
備注:本文部分內(nèi)容參考圖書《powershell實(shí)戰(zhàn)指南第三版》
更多內(nèi)容請參考
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁標(biāo)題:PowerShell操作WMI概覽-創(chuàng)新互聯(lián)
當(dāng)前URL:http://sd-ha.com/article26/jchjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站制作、做網(wǎng)站、App開發(fā)、企業(yè)建站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容