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

如何通过Powershell获取SCOM中Win10逻辑磁盘的FreeSpace属性

SCOM PowerShell获取Win10逻辑磁盘FreeSpace属性解决方案

问题根因

Microsoft.Windows.Client.Win10.Aggregate.LogicalDisk属于Microsoft.Windows.Client.Win10.LogicalDisk的派生聚合类,二者关联的实例对象同源,直接使用Select-Object默认只能获取实例的顶层基础属性,FreeSpace属于类的托管属性,存放在实例的Properties集合中,无法直接选中返回。

可行解决方案

方法1:从实例属性集合直接提取

如果对应逻辑磁盘类的托管定义中已包含FreeSpace属性,可直接通过Properties字段取值:

Get-SCOMClass -Name "Microsoft.Windows.Client.Win10.LogicalDisk" | Get-SCOMClassInstance | ForEach-Object {
    [PSCustomObject]@{
        磁盘显示名 = $_.DisplayName
        健康状态 = $_.HealthState
        可用空间 = $_.Properties["FreeSpace"].Value
        总空间 = $_.Properties["Size(MB)"].Value
    }
}

执行前可先运行以下命令确认类的属性列表中存在FreeSpace定义:

Get-SCOMClass -Name "Microsoft.Windows.Client.Win10.LogicalDisk" | Select-Object -ExpandProperty Properties | Where-Object Name -match "Free|Space"

方法2:查询性能收集数据

如果类属性中无直接定义,FreeSpace是通过性能收集规则存储的,可直接拉取最新性能数据:

# 获取所有Win10逻辑磁盘实例
$diskInstances = Get-SCOMClass -Name "Microsoft.Windows.Client.Win10.LogicalDisk" | Get-SCOMClassInstance
# 拉取逻辑磁盘可用空间性能计数器最新数据
Get-SCOMPerformanceData -MonitoringObject $diskInstances -ObjectName "LogicalDisk" -CounterName "Free Megabytes" | Select-Object MonitoringObjectPath, TimeSampled, Value

注意事项

  • 若要使用聚合类查询,仅需替换上述命令中的类名为Microsoft.Windows.Client.Win10.Aggregate.LogicalDisk即可,取值逻辑完全一致
  • 若返回空值,先确认对应Windows客户端管理包已正确导入,目标设备的逻辑磁盘发现规则已正常执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:45:10