中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PowerShell操作WMI概覽

發布時間:2020-06-03 10:43:33 來源:網絡 閱讀:771 作者:zengchuixin2008 欄目:系統運維

什么是WMI

WMI可以從計算機中收集大量系統信息。但有時候這些信息不易看懂,另外文檔也不夠友好。WMI是一個外部技術,PowerShell僅僅與其接口進行交互而已。

在最頂層,WMI被組織成命名空間(namespaces)。可以把命名空間想象為關聯到特定產品或技術的一個文件夾。比如,“root\CIMv2”,該命名空間包含了所有Windows操作系統和計算機硬件信息。而“root\MicrosoftDNS”命名空間包含了所有關于DNS服務器(假設你已經在計算機中安裝了該角色)的信息。

在命名空間中,WMI被分成一系列的類,每個類都是可用于WMI查詢的管理單元。比如,在“root\SecurityCenter”中的“Antivirus-Product”類被設計用于保存反間諜軟件的信息;在“root\CIMv2”中的“Win32_LogicalDisk”類被設計用于保存邏輯磁盤的信息。但是即使一個計算機上存在某個類,也不代表計算機實際上安裝了對應組件。比如無論是否安裝了磁帶驅動程序。“Win32_TapeDrive”類在所有的Windows版本上都存在。不是所有的計算機都包含相同的WMI命名空間或類。

WMI的未來

在WMI大部分生命周期中,微軟都沒有把過多的精力放在對其內部控制上(最近有所好轉)。微軟為WMI制定了一系列的編程標準,但是產品組或多或少把精力放在如何實現類和是否對其文檔化。結果就是使得WMI變得混亂。

所謂的“WMI Cmdlets”,例如“Get-WmiObject”與“Invoke-WmiMethod”——這些都是遺留命令,意味著它們依舊能工作,但是微軟不會對它們進行后續開發投入。它們與遠程過程調用(RPC)交互,也就是說,只有在防火墻支持狀態審查時才能通過防火墻(實際上很難)。

新版的“CIM Cmdlets”,例如“Get-CimInstance”與“Invoke-CimMethod”——它們或多或少等價于舊版本的“WMI Cmdlets”,但是它們通過WS-MAN(由Windows遠程管理服務實現)交互,替代原有的RPCs。

在Windows Server 2012 R2以及更新版本中,舊版的WMI默認為禁用狀態,因此盡可能使用CIM。除此之外,CIM cmdlet可以使用舊版的RPC(或DCOM)協議通訊,因此與老機器進行通訊時,你也可以僅使用CIM cmdlet。

在執行WMI篩選的時候,篩選語法是傳遞到WMI,而不是由PowerShell處理,所以你必須使用WMI規定的語法去替代內置的PowerShell操作符。

Get-WmiObject win32_process -filter {name='notepad.exe'} |Invoke-WmiMethod -Name Terminate

WMI的(微弱)優勢

雖然WMI所需的RPC網絡通信難以穿透防火墻,但WMI能夠適用的計算機數量最多(當前來說);CIM只需要更新更簡單的WS-MAN通信,但在老版本的Windows默認情況下,并沒有安裝WS-MAN。

WMI串行與并行執行

Get-WMIObject命令會與一臺或多臺遠程計算機進行連接,但是通過串行方式實現,效率比較低。
備注: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參數(或者是該參數的別名,-Command)中指定的任意命令都會并行發送到指定的每臺計算機。可以同時訪問多達32臺計算機(除非你修改了-ThrottleLimit參數允許同時訪問更多或者更少的計算機),所以當你指定了超過32個計算機名稱,僅有前32臺計算機會開始執行該命令。當在前32臺計算機即將結束時,剩余的計算機才可以開始執行這些命令。另外,當在所有計算機上都執行結束后,上層的父作業會返回一個完整的狀態。
備注:Get-CimInstance是Get-WMIObject的新式寫法

invoke-command -ScriptBlock { Get-CimInstance -ClassName win32_process } -ComputerName WIN8 -Credential DOMAIN\Administrator

備注:本文部分內容參考圖書《powershell實戰指南第三版》

更多內容請參考
PowerShell操作WMI概覽

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秦安县| 富蕴县| 舟山市| 闸北区| 大厂| 通州市| 正蓝旗| 乐清市| 沙湾县| 招远市| 如东县| 水富县| 栾川县| 黄骅市| 顺平县| 金昌市| 峡江县| 加查县| 文化| 成武县| 中山市| 嘉定区| 兴宁市| 天门市| 长子县| 嘉鱼县| 富蕴县| 德格县| 内黄县| 荔浦县| 万载县| 麻栗坡县| 玛纳斯县| 喜德县| 方城县| 四子王旗| 南平市| 镇康县| 漳州市| 松滋市| 东光县|