首頁  >  文章  >  電腦教學  >  WMIC 終將謝幕:如何遷移到 PowerShell,系統管理員的必修課

WMIC 終將謝幕:如何遷移到 PowerShell,系統管理員的必修課

WBOY
WBOY轉載
2024-03-04 10:00:051084瀏覽

WMIC 终将谢幕:如何迁移到 PowerShell,系统管理员的必修课

#

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 作為替代呢?這項決策主要基於以下幾點原因:

  1. 技術發展:PowerShell 提供了一種更現代、更強大的方式來存取和管理 WMI,以及其他許多系統管理功能。它支援更複雜的腳本、更靈活的命令,以及更廣泛的功能集,讓它成為了執行系統管理任務的首選。
  2. 效能提升:比起 WMIC,PowerShell 在效能和效率上通常表現更優,尤其是在處理大量資料或執行複雜管理任務時,PowerShell cmdlets 運作更有效率。
  3. 安全性考量: WMIC 可能被惡意軟體或攻擊者利用來執行遠端命令或部署惡意程式碼。而 PowerShell 則透過執行策略控制、更細緻的權限管理等強大安全特性,來有效降低這類風險。
  4. 統一標準:集中使用 PowerShell 來管理系統任務,有助於實現工具集的統一和標準化,簡化系統管理工作,提升效率,並減少管理員在不同工具間切換的需要。
  5. 社群支援: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-CommandGet-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,系統管理員的必修課的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:mryunwei.com。如有侵權,請聯絡admin@php.cn刪除