WMIC 是系統管理員的重要工具,在「命令提示符」下提供了高效、精確的管理 Windows 系統的方式。管理員可利用WMIC來執行系統配置、查詢和監控等操作。
微軟已宣佈將在未來的 Windows 版本中逐步淘汰 WMIC:
- Windows 10 21H1: WMIC 的用戶界面(UI)已不推薦使用。
- Windows 11 23H2 和 22H2: WMIC 作爲一個「可選功能」提供,但仍默認安裝。
- Windows 11 24H2: WMIC 將完全移除。
此外,從 2024 年 1 月 29 日起,WMIC 在 Windows 預覽版中,僅作爲一個可選功能提供,已經不再默認安裝。
那麼,對於依賴 WMIC 開展工作的用戶該怎麼辦呢?微軟推薦使用 Windows PowerShell 替代 WMIC。
PowerShell 是一種基於 .NET Framework 的命令行解釋器和腳本環境,具有更強大的功能和更靈活的語法。
接下來,讓我們先回顧一下 WMIC 的主要功能,再介紹如何使用 PowerShell 來平替這些功能。
WMIC 是什麼
WMIC 全稱 Windows Management Instrumentation Command-line,是一個命令行工具。它提供了訪問 Windows Management Instrumentation(WMI)的通道。WMI 是 Windows 中一個強大的管理框架,用於數據管理和操作。
通過使用WMIC,管理員可以輕鬆地進行各種Windows管理任務。結合WMI腳本和應用程序,以及WinRM(Windows遠程管理)和SCCM(System Center Configuration Manager),可以實現在遠程計算機上自動化執行管理任務。WMIC提供了強大的功能,可以通過命令行或腳本輕鬆地訪問和管理Windows操作系統的各種信息和功能。管理員可以使用WMIC查詢系統信息、安裝軟件、配置網絡設置等。同時,WMIC還支持遠程管理,管理員可以通過遠程連接輕鬆地管理多臺計算機。通過結合WMI腳本和應用程序,管理員可以更靈活地定製管理任務,並實現自動化執行。而藉助WinRM和SCCM等工具,可以更高效地進行遠程管理,提高管理效率並減少人工操作
WMIC的緊密集成允許用戶查詢和調整系統設置,例如,通過WMIC可以輕鬆調整Windows屏幕亮度。使用以下WMIC命令可以獲取計算機的型號、名稱、製造商和系統類型。
wmic computersystem get manufacturer,model,name,systemtype登錄後複製
使用 WMIC 命令 獲取計算機信息
這條命令能迅速提供關鍵系統信息,對系統管理員而言極其有用。
微軟爲什麼決定淘汰 WMIC
WMIC 棄用時間表
既然 WMIC 這麼好用,微軟又爲什麼要將之棄用,轉而推動 PowerShell 作爲替代呢?這一決策主要基於以下幾點原因:
- 技術發展:PowerShell 提供了一種更現代、更強大的方式來訪問和管理 WMI,以及其他許多系統管理功能。它支持更復雜的腳本、更靈活的命令,以及更廣泛的功能集,讓它成爲了執行系統管理任務的首選。
- 性能提升:相比 WMIC,PowerShell 在性能和效率上通常表現更優,尤其是在處理大批量數據或執行復雜管理任務時,PowerShell cmdlets 運行更高效。
- 安全性考量: WMIC 可能被惡意軟件或攻擊者利用來執行遠程命令或部署惡意代碼。而 PowerShell 則通過執行策略控制、更細緻的權限管理等強大安全特性,來有效降低這類風險。
- 統一標準:集中使用 PowerShell 來管理系統任務,有助於實現工具集的統一和標準化,簡化系統管理工作,提升效率,並減少管理員在不同工具間切換的需要。
- 社區支持:PowerShell 擁有一個活躍的社區,提供豐富的資源、腳本和模塊。微軟與社區的持續投入保障了 PowerShell 的不斷更新和改進,而 WMIC 的發展則相對停滯。
雖然 WMIC 在過去是非常有用的管理工具,但隨着技術的演進和新工具的出現,微軟認爲轉向更現代、更安全、更強大的管理工具是必要的。
這反映了一個行業常態:隨着技術的進步,舊工具會被更先進的新工具所取代,以滿足現代 IT 環境的需求。
使用 PowerShell、WMI 和 CIM 替代 WMIC
在正式探討替代方案之前,我們需要先釐清幾個核心概念:
- Windows 系統內置了 WMI 和 CIM 的 cmdlets,爲管理員提供了強大的管理工具。
- WMI(Windows 管理接口)基於 CIM(通用信息模型)標準,主要用於獲取和展示計算機信息。CIM 是行業通用標準,雖然它本身不直接支持遠程數據訪問,但 WMI 利用了 DCOM(分佈式組件對象模型)和 RPC(遠程過程調用)等技術,實現了在網絡連接的遠程系統上使用 CIM。不過,WMI 在通過防火牆進行遠程設備查詢時存在一定侷限性。
- PowerShell 中的 WMI 和 CIM cmdlets 是向着更安全、更高效、兼容性更強的管理工具轉型的重要一步。接下來,我們將通過一些基本實例,幫助你完成這一轉型過程。
CIM cmdlets 使用示例
CIM cmdlets 通過 WS-Management 協議實現數據交換,該協議比 DCOM 更適合遠程管理,尤其是在需要穿透防火牆時。
- 獲取系統信息
Get-CimInstance -ClassName CIM_ComputerSystem登錄後複製
該命令會顯示當前計算機的系統信息,輸出內容與 WMIC 命令相似。
使用 Get-CimInstance 獲取系統信息
- 獲取啓動配置
Get-CimInstance -ClassName CIM_OperatingSystem登錄後複製
該命令提供了操作系統的詳細信息,包括系統目錄、構建號和版本信息等。
WMI cmdlets 使用示例
雖然比較推薦使用 CIM cmdlets,但 PowerShell 同樣支持直接使用 WMI 的 cmdlets。例如:
- 獲取進程列表
Get-WmiObject -Class Win32_Process登錄後複製
該命令會列出當前運行的所有進程。
使用 Get-WmiObject 查看進程列表
- 獲取服務狀態
Get-WmiObject -Class Win32_Service | Where-Object {$_.State -eq "Running"}登錄後複製
該命令會篩選出所有當前正在運行的服務。
使用 Get-WmiObject 查看運行的服務
WMIC 腳本向 PowerShell 轉換
如果你之前主要使用 WMIC 進行管理任務,現在可以考慮將這些腳本轉換爲 PowerShell cmdlets。
PowerShell 提供了更多命令選項和更靈活的腳本功能,在多數情況下,這個轉換過程直接且簡單。
轉換過程中,Get-Command和Get-Help cmdlets 能幫助你快速找到對應的 PowerShell 命令,及其使用方法。
例如,要查找所有與實例相關的可用 CIM 命令,可以使用:
Get-Command -Noun CimInstance*登錄後複製
使用 Get-Help 獲取幫助
同時,Get-Help命令能提供特定 cmdlet 的詳細使用說明和示例,這對學習新命令非常有幫助:
Get-Help Get-CimInstance -Full登錄後複製
通過這種方式,你就可以逐步替換 WMIC 命令,從而提高系統管理的效率和安全性。
要深入瞭解 PowerShell 中的 WMI 和 CIM 命令使用方法,可以參考微軟發佈的這篇指南。
自 2016 年起,微軟就已經開始逐步淘汰 WMIC。雖然沒有宣佈具體的棄用日期,但想必已經迫在眉睫。因此,建議系統管理員儘快開始探索遷移解決方案,把 PowerShell 的 WMI 和 CIM 工具融入日常管理工作和編程任務中。
以上就是WMIC 終將謝幕:如何遷移到 PowerShell,系統管理員的必修課的詳細內容,更多請關注本站其它相關文章!