PowerShell格式 - 来自链中不同对象的列表

时间:2011-07-12 15:10:34

标签: powershell

如何从管道链中的父对象输出属性?

例如:

get-vm | get-vmdisk | forEach {Get-VHDInfo $ _.DiskPath} |选择-Property Path,ParentPath,VM.VMElementName

基本上我正在想的是VM.VMElementName(我编写了这个语法)。它不是直接对象(来自Get-VHDInfo),而是我想要获取值的祖父母(来自get-vm)。

1 个答案:

答案 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}}
}