0

0

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

WBOY

WBOY

发布时间:2024-03-04 10:00:05

|

2291人浏览过

|

来源于每日运维

转载

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 命令相似。

Vondy
Vondy

下一代AI应用平台,汇集了一流的工具/应用程序

下载

使用 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 工具融入日常管理工作和编程任务中。

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

324

2023.08.11

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

231

2023.10.07

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1017

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

62

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

400

2025.12.29

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

576

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1098

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

790

2023.08.01

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

36

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.1万人学习

Excel 教程
Excel 教程

共162课时 | 11.8万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号