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

在PowerShell中通过WQL从SCCM多表返回指定属性的问题

使用PowerShell执行SCCM WQL查询获取匹配机箱类型的计算机信息

我帮你调整了PowerShell脚本,确保它和SCCM控制台的查询逻辑完全一致,能准确返回你需要的计算机名称和机箱类型数据。下面是完整的可运行脚本,以及关键细节的说明:

完整脚本

# 配置SCCM服务器和站点代码
$sccmServer = "sccmserver"
$siteCode = "sitecode"  # 替换成你的实际站点代码,比如"XYZ"
$namespace = "root\sms\site_$siteCode"

# 定义需要筛选的机箱类型集合(可根据需求增删,对应SCCM的机箱类型枚举值)
$targetChassisTypes = @("1","2","3","4","6","7","9","10","14","15","16","17","18","21")

# 构建WQL查询,这里用双引号Here-String解析变量,自动生成IN子句的格式
$query = @"
SELECT 
    SMS_G_System_COMPUTER_SYSTEM.Name,
    SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes
FROM 
    SMS_R_System 
INNER JOIN 
    SMS_G_System_COMPUTER_SYSTEM ON SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId 
INNER JOIN 
    SMS_G_System_SYSTEM_ENCLOSURE ON SMS_G_System_SYSTEM_ENCLOSURE.ResourceId = SMS_R_System.ResourceId 
WHERE 
    SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes IN ($($targetChassisTypes -join "','"))
"@

# 执行查询(推荐用Get-CimInstance,兼容性更好)
try {
    $results = Get-CimInstance -ComputerName $sccmServer -Namespace $namespace -Query $query -ErrorAction Stop
    # 格式化输出,和SCCM控制台的列名、展示风格对齐
    $results | Select-Object `
        @{Name="计算机名称"; Expression={$_.Name}}, `
        @{Name="机箱类型"; Expression={$_.ChassisTypes}} `
    | Format-Table -AutoSize
}
catch {
    Write-Error "查询执行失败: $_"
}

关键细节说明

  • 机箱类型集合管理:用数组$targetChassisTypes统一维护需要筛选的类型,后续要调整只需修改这个数组,无需手动拼接WQL字符串,避免出错。通过$targetChassisTypes -join "','"自动把数组转成WQL的IN子句需要的格式(比如'1','2','3')。
  • 查询逻辑对齐:完全复用了你在SCCM控制台使用的表关联逻辑——通过SMS_R_System(基础资源表)关联SMS_G_System_COMPUTER_SYSTEM(计算机名称信息)和SMS_G_System_SYSTEM_ENCLOSURE(机箱类型信息),确保返回结果和控制台一致。
  • 兼容性优化:使用Get-CimInstance替代旧的Get-WmiObject,它支持PowerShell 5.1及以上版本,在现代系统上更稳定,也支持更多的错误处理机制。
  • 输出格式化:通过Select-Object重命名列名,并用Format-Table -AutoSize让输出更整齐,和SCCM控制台的展示效果匹配。

你只需要把脚本里的sccmserver和sitecode替换成你的实际SCCM服务器名称和站点代码,再根据需求调整$targetChassisTypes里的枚举值,就能直接运行得到想要的结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:21:59