很长一段时间以来,我一直推迟将所有基于 WMIC 的命令更改为“微软现在希望我使用的任何现代垃圾”,并花了大量时间尝试(但失败了)寻找替代方案。
更让我担心的是,每次运行该命令时,它都会显示“WMIC 已被弃用。”,并带有红色的吓人字母。
现在,我再次回顾了这个问题并尝试输入:
WMIC os get InstallDate
... 红色警告文本消失了。没有提到 WMIC 正在被弃用或已被弃用。这是否意味着我希望它能做到?也就是说,Windows 将无限期地或长期支持它?
我确实希望如此,因为现在我已经没有精力再做任何改变。
答案1
更让我担心的是,每次运行该命令时,它都会显示“WMIC 已被弃用。”,并带有红色的吓人字母。
WMIC 确实已经被弃用了。
WMI 命令行工具 (Wmic) 已弃用。请改用 PowerShell cmdlet。
此外,获取 WmiObject文档表明这种情况在 13 年前发布的 PowerShell 3.0 中发生过。 PowerShell 3.0 随 Windows Server 2012 和 Windows 8.0 发布。
从 PowerShell 3.0 开始,此 cmdlet 已被 Get-CimInstance 取代。
来源:
由于您表示目前没有收到此警告,因此我假设您的环境与显示警告消息的环境不同。我还假设您曾经安装过 PowerShell Core 并在 PowerShell 6.0+ 提示符中运行 WMIC 命令。我还假设环境的差异在于您现在使用的系统仅安装了 PowerShell 5.1。 我没有理由相信这些假设是错误的。
您收到 WMIC 已被弃用通知的最合理原因是由于安装了 PowerShell Core,获取 WmiObject似乎已停止支持获取 CimInstance在 PowerShell Core 6.0 及更高版本中。我的研究表明获取 WmiObject实际上已在 PowerShell Core 6 中删除。需要强调的是,虽然您通常会在命令提示符实例中运行 WMIC 命令,但我能够在 PowerShell 5.1 实例中成功运行它。
没有提到 WMIC 正在被弃用或已被弃用。这意味着我希望它能做到吗?
它已经被替换了。因此,你应该使用获取 CimInstance,PowerShell 5.1 和 PowerShell (Core) 6.0 及更新版本均支持该版本。PowerShell (Core) 旨在成为 PowerShell 的下一个版本,并且它是 Microsoft 正在开发的唯一 PowerShell 版本。旧版 PowerShell 5.1 分支已于 2014 年停用。
我的假设是,您在 PowerShell 6 或更新的提示符中运行 WMIC 命令,这得到了以下有关该主题的 Microsoft 文档 GitHub 错误报告的声明的支持。
名称中带有 WMI 的 cmdlet 已从 PowerShell 6 中删除,并且不再受支持。WMI 功能由 CIMCmdlets 模块提供。
指出 PowerShell 6 中已删除 WMI cmdlet 的个人是 Microsoft 的高级 PowerShell 开发人员。
来源:
也就是说,Windows 将无限期地或长期地继续支持它?
微软尚未明确宣布何时不再支持 WMIC 本身。微软也没有断言 PowerShell 5.1 将不会安装在未来的 Windows 版本中。 只要 PowerShell 5.1 安装在 Windows 10 或 Windows Server 上,WmiObeject 和 WMIC 就会继续受支持。 微软还没有宣布旧版命令提示符何时将在 Windows 上不再可用。
根据所有事实,您应该更新您的脚本,因为您正在使用 2014 年已停产的脚本,但您可能还需要几年的时间才能实现该目标。
背景:
答案2
可能会有很多事情引起人们的关注,但在 Windows 11 的开发版本中WMIC
它已经被删除了!
https://winaero.com/microsoft-removed-the-wmic-tool-from-windows-11-dev-builds/