You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell获取指定程序版本时输出格式优化问题求助

解决PowerShell获取程序信息时重复表头的问题

你重复调用Get-WmiObject并分别追加输出,导致每次输出都会生成独立的表头。要实现只显示一次表头,只需一次性查询并过滤目标程序,再统一输出即可。

方法1:用-in操作符一次性过滤多个程序名

Get-WmiObject -Class Win32_Product | 
    Where-Object { $_.Name -in "Microsoft Policy Platform", "Mitel Connect" } |
    Select-Object Name, Version >> c:\Temp\Programs.txt

方法2:使用现代的Get-CimInstance(推荐,Get-WmiObject已被弃用)

Get-CimInstance -ClassName Win32_Product |
    Where-Object { $_.Name -in "Microsoft Policy Platform", "Mitel Connect" } |
    Select-Object Name, Version >> c:\Temp\Programs.txt

原理说明

  • 原写法两次执行完整管道流程,每次Select-Object输出都会包含表头,追加到文件时自然重复。
  • 合并为一次查询后,所有匹配结果作为同一组对象输出,只会生成一次表头。

如果需要分步收集结果再输出,也可以先把结果存入变量,最后统一写入文件(效率略低于一次性查询):

$programs = @()
$programs += Get-WmiObject -Class Win32_Product | Where-Object Name -eq "Microsoft Policy Platform"
$programs += Get-WmiObject -Class Win32_Product | Where-Object Name -eq "Mitel Connect"
$programs | Select-Object Name, Version >> c:\Temp\Programs.txt

内容的提问来源于stack exchange,提问作者BatchKing70

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 06:39:22