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

PowerShell命令无法返回系统型号的问题求助

PowerShell命令无法返回系统型号的问题求助

别担心,我完全理解你想用PowerShell简化工作的需求,这问题很好解决!

你原来的命令里System Model字段为空,核心原因是**Win32_BIOS这个WMI类里根本没有名为System Model的属性**——这个信息其实存在于Win32_ComputerSystem类里。

我给你修正后的两种方案,选你顺手的用就行:

方案1:一次性整合查询(适合快速执行)

Get-WmiObject Win32_ComputerSystem | Select-Object Manufacturer, 
    @{Name="System Model"; Expression={$_.Model}},
    @{Name="SMBIOSBIOSVersion"; Expression={(Get-WmiObject Win32_BIOS).SMBIOSBIOSVersion}},
    @{Name="SerialNumber"; Expression={(Get-WmiObject Win32_BIOS).SerialNumber}},
    @{Name="AssetTag"; Expression={(Get-WmiObject Win32_SystemEnclosure).SMBIOSAssetTag}}

方案2:先获取对象再整合(更高效,避免重复调用WMI)

如果需要经常执行这类查询,推荐这种方式,减少系统资源消耗:

# 先把需要的系统信息对象都获取一次
$computerInfo = Get-WmiObject Win32_ComputerSystem
$biosInfo = Get-WmiObject Win32_BIOS
$enclosureInfo = Get-WmiObject Win32_SystemEnclosure

# 整理输出需要的字段
$computerInfo | Select-Object Manufacturer,
    @{Name="System Model"; Expression={$computerInfo.Model}},
    @{Name="SMBIOSBIOSVersion"; Expression={$biosInfo.SMBIOSBIOSVersion}},
    @{Name="SerialNumber"; Expression={$biosInfo.SerialNumber}},
    @{Name="AssetTag"; Expression={$enclosureInfo.SMBIOSAssetTag}}

额外小建议

如果你用的是PowerShell 3.0及以上版本,微软更推荐用Get-CimInstance代替Get-WmiObject(后者已经逐步被淘汰),用法几乎一样,把上面命令里的Get-WmiObject换成Get-CimInstance就行,性能和兼容性更好。

备注:内容来源于stack exchange,提问作者user1800001

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:07:58