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

如何获取PowerShell对象数组中各对象的属性值?

提取PowerShell哈希表格式字符串的属性值

你当前拆分得到的是哈希表格式的字符串,并非真正的PowerShell对象,所以无法直接访问属性。需要先将这些字符串转换为可操作的对象,再提取属性值,以下是两种可行方法:

方法1:使用Invoke-Expression转换(注意安全风险)

如果你的字符串来源可信,可以直接把字符串当作PowerShell代码执行,转换成哈希表对象:

# 假设拆分后的字符串数组存储在$splitStrings变量中
$convertedObjects = $splitStrings | ForEach-Object { Invoke-Expression $_ }

# 访问属性示例
$convertedObjects | ForEach-Object {
    "可用性组: $($_.AvailabilityGroup),名称: $($_.Name)"
}

方法2:正则解析(安全推荐)

若字符串格式固定,用正则表达式提取属性值并封装为自定义对象,避免代码注入风险:

$splitStrings | ForEach-Object {
    # 匹配属性值
    if ($_ -match 'AvailabilityGroup=(?<AG>[^;]+); Name=(?<Name>\d+)') {
        # 生成自定义对象
        [PSCustomObject]@{
            AvailabilityGroup = $matches.AG
            Name = $matches.Name
        }
    }
} | ForEach-Object {
    # 输出属性值
    "可用性组: $($_.AvailabilityGroup),名称: $($_.Name)"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 04:15:54