如何从管道链中的父对象输出属性?
例如:
get-vm | get-vmdisk | forEach {Get-VHDInfo $ _.DiskPath} |选择-Property Path,ParentPath,VM.VMElementName
基本上我正在想的是VM.VMElementName(我编写了这个语法)。它不是直接对象(来自Get-VHDInfo),而是我想要获取值的祖父母(来自get-vm)。
答案 0 :(得分:5)
您无法以您希望的方式从上游cmdlet获取值。您可以在调用get-vm后立即使用foreach-object并将值保存在变量中,然后将其作为新的计算属性分配给select-object。
get-vm | foreach-object{
$VMElementName = $_.VMElementName
get-vmdisk | forEach {Get-VHDInfo $_.DiskPath} | Select Path,ParentPath,@{Name='VMElementName';Expression={$VMElementName}}
}