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