PowerShell如何让Out-GridView仅展示指定字段并返回原完整对象
实现方案
你可以通过在Select阶段附加隐藏的原对象属性实现需求,无需二次检索原集合,代码如下:
$selectedcred = $listcreds | Select-Object Name, Id, @{ Name = 'FullObject' Expression = { $_ } Attributes = [System.Management.Automation.HiddenAttribute]::new() } | Out-GridView -PassThru -Title "请选择目标凭据" | Select-Object -ExpandProperty FullObject
实现逻辑
- 构造计算属性
FullObject存储完整的原始对象,同时给该属性添加Hidden特性,Out-GridView默认不会展示标记为隐藏的属性,因此界面上用户只会看到你指定的Name、Id两个字段。 - 用户选中条目返回后,直接展开
FullObject属性即可拿到类型、属性完整的原始对象。
低版本PowerShell兼容方案
如果你使用的PowerShell版本不支持Hidden属性特性,可使用如下兼容写法,额外的属性会在GridView最后一列显示为对象类型名,不影响正常选择使用:
$selectedcred = $listcreds | Select-Object Name, Id, @{n='FullObject';e={$_}} | Out-GridView -PassThru | Select-Object -ExpandProperty FullObject
内容的提问来源于stack exchange,提问作者Gabrie
相关产品推荐
相关产品推荐

