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 作为替代呢?这一决策主要基于以下几点原因:
- 技术发展: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,系统管理员的必修课的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

VS Code可以在Windows 8上运行,但体验可能不佳。首先确保系统已更新到最新补丁,然后下载与系统架构匹配的VS Code安装包,按照提示安装。安装后,注意某些扩展程序可能与Windows 8不兼容,需要寻找替代扩展或在虚拟机中使用更新的Windows系统。安装必要的扩展,检查是否正常工作。尽管VS Code在Windows 8上可行,但建议升级到更新的Windows系统以获得更好的开发体验和安全保障。

Redis缓存方案如何实现产品排行榜列表的需求?在开发过程中,我们常常需要处理排行榜的需求,例如展示一个�...

在 Sublime 中运行代码的方法有六种:通过热键、菜单、构建系统、命令行、设置默认构建系统和自定义构建命令,并可通过右键单击项目/文件运行单个文件/项目,构建系统可用性取决于 Sublime Text 的安装情况。

要安装 Laravel,需依序进行以下步骤:安装 Composer(适用于 macOS/Linux 和 Windows)安装 Laravel 安装器创建新项目启动服务访问应用程序(网址:http://127.0.0.1:8000)设置数据库连接(如果需要)

在Laravel开发中,处理复杂的模型关系一直是个挑战,特别是当涉及到多层级的BelongsToThrough关系时。最近,我在处理一个多级模型关系的项目中遇到了这个问题,传统的HasManyThrough关系无法满足需求,导致数据查询变得复杂且低效。经过一番探索,我找到了staudenmeir/belongs-to-through这个库,它通过Composer轻松安装并解决了我的困扰。

VS Code扩展安装失败的原因可能包括:网络不稳定、权限不足、系统兼容性问题、VS Code版本过旧、杀毒软件或防火墙干扰。通过检查网络连接、权限、日志文件、更新VS Code、禁用安全软件以及重启VS Code或计算机,可以逐步排查和解决问题。

VS Code 可以在 Mac 上使用。它具有强大的扩展功能、Git 集成、终端和调试器,同时还提供了丰富的设置选项。但是,对于特别大型项目或专业性较强的开发,VS Code 可能会有性能或功能限制。
