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

为何Select-String与Get-ComputerInfo结合无结果?如何正确搭配?

问题解决:Get-ComputerInfo 与 Select-String 配合无结果的原因及方案

为什么systeminfo能用而Get-ComputerInfo不行?

  • systeminfo 是传统命令行工具,输出的是纯文本流,每一行都是字符串,Select-String 可以直接逐行匹配文本内容。
  • Get-ComputerInfo 是PowerShell cmdlet,输出的是结构化的自定义对象(不是纯文本)。Select-String 默认会对对象调用 ToString() 方法,而这些对象的 ToString() 返回的是类型名称(比如 Microsoft.PowerShell.Commands.ComputerInfo),不是对象的属性内容,自然搜不到包含"boot"的内容。

正确的组合方式

方法1:转成纯文本后匹配(模拟systeminfo的用法)

把对象转换成逐行的文本流,再用Select-String匹配:

Get-ComputerInfo | Out-String -Stream | Select-String boot
  • Out-String -Stream 会把对象的格式化输出拆分成单独的字符串行,和systeminfo的输出格式一致,这样Select-String就能正常匹配了。

方法2:直接操作结构化对象(更符合PowerShell的用法)

既然Get-ComputerInfo返回的是对象,没必要转成文本,直接筛选属性:

筛选属性名包含Boot的信息

Get-ComputerInfo | Select-Object *Boot*

这会直接返回所有属性名里带Boot的属性及其值,比如WindowsBootDevice、BootTime等。

筛选属性值包含Boot的信息

如果要找属性值里包含Boot的内容,可以遍历对象的属性:

Get-ComputerInfo | ForEach-Object {
    $_.PSObject.Properties | Where-Object {
        $_.Value -match 'boot'
    } | Select-Object Name, Value
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:01:11