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

PowerShell 如何修改数组中Get-ADComputer返回对象的Test属性值

问题原因说明

你当前看到Test属性显示为{},是因为该属性是你通过Select-Object创建的自定义计算属性,不属于AD计算机对象的原生属性,没有赋值的情况下默认是空集合。

修改属性值的方法

方法1:遍历数组按需赋值

如果需要给不同计算机的Test属性分配不同值,可以用循环匹配修改:

foreach ($computer in $tab) {
    # 按计算机名匹配赋值,可根据实际需求调整判断逻辑
    if ($computer.Name -eq 'PORT-CAEN-15') {
        $computer.Test = '在线'
    } elseif ($computer.Name -eq 'PORT-CAEN-24') {
        $computer.Test = '离线'
    }
}

如果需要给所有项的Test属性统一赋值,写法更简单:

$tab | ForEach-Object { $_.Test = '待检测' }

方法2:创建数组时直接初始化属性值

你当前用+=累加数组的写法在数据量大时性能较差,更推荐在查询阶段直接给Test属性赋初始值:

# 一次查询目标设备,直接定义Test属性的初始值
$tab = Get-ADComputer -Filter "Name -in 'PORT-CAEN-15','PORT-CAEN-24'" | 
Select-Object Name, @{
    Name = 'Test'
    Expression = { '自定义初始值' } # 这里可以写动态计算逻辑,比如检测设备连通性后返回对应结果
}

术语说明

你描述里的术语没有错误,更精准的表述是:你通过Select-Object创建的Test属于自定义计算属性,不是AD域对象的原生属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:09:03