将派生属性添加到powershell命令管道

将派生属性添加到powershell命令管道,powershell,Powershell,例如,如果Get NetTCPConnection命令返回OwningProcess ID,是否可以创建一个一行程序,添加另一列,将ID扩展为Get Process-ID返回的ProcessName?是,使用计算表达式。请参见上的示例10 编辑 有没有一种方法可以告诉Select对象保留所有属性而不显式列出它们,这样除了默认打印的属性外,还会显示计算表达式 是的,但它比它应该的复杂得多。它的关键是(您可能已经知道)“所有属性”和“默认打印”是两个不同的东西。通过比较Get nettcpcconn

例如,如果Get NetTCPConnection命令返回OwningProcess ID,是否可以创建一个一行程序,添加另一列,将ID扩展为Get Process-ID返回的ProcessName?

是,使用计算表达式。请参见上的示例10

编辑

有没有一种方法可以告诉Select对象保留所有属性而不显式列出它们,这样除了默认打印的属性外,还会显示计算表达式

是的,但它比它应该的复杂得多。它的关键是(您可能已经知道)“所有属性”和“默认打印”是两个不同的东西。通过比较
Get nettcpcconnection
Get nettcpcconnection|选择*

因此,要获得所有属性+计算属性,它将是:

Get-NetTCPConnection | select *,@{n="ProcessName";e={Get-Process -Id $_.OwningProcess | select -Expand ProcessName}}
要获取默认属性+计算属性(*sigh*):


相关:

是,使用计算表达式。请参见上的示例10

编辑

有没有一种方法可以告诉Select对象保留所有属性而不显式列出它们,这样除了默认打印的属性外,还会显示计算表达式

是的,但它比它应该的复杂得多。它的关键是(您可能已经知道)“所有属性”和“默认打印”是两个不同的东西。通过比较
Get nettcpcconnection
Get nettcpcconnection|选择*

因此,要获得所有属性+计算属性,它将是:

Get-NetTCPConnection | select *,@{n="ProcessName";e={Get-Process -Id $_.OwningProcess | select -Expand ProcessName}}
要获取默认属性+计算属性(*sigh*):


相关:

谢谢,顺便说一句,有没有办法告诉Select Object保留所有属性而不显式列出它们,这样除了默认打印的属性外,还会显示计算表达式?@jackhab-请参见编辑。谢谢,顺便说一句,是否有一种方法可以告诉Select Object保留所有属性,而不显式列出它们,以便除了默认打印的属性外,还会显示计算表达式?@jackhab-请参阅编辑。
# this is from Get-NetTCPConnection | Get-Member
$typeName = 'Microsoft.Management.Infrastructure.CimInstance#ROOT/StandardCimv2/MSFT_NetTCPConnection'

# export format data for this type
Get-FormatData -TypeName $typeName | Export-FormatData -IncludeScriptBlock -Path $env:TEMP\formatdata.ps1xml

# open the ps1xml in editor of choice C:\Users\<user>\AppData\Local\Temp\formatdata.ps1xml
# Add under TableHeaders
    <TableColumnHeader>
        <Width>14</Width>
    </TableColumnHeader>
# Add under TableColumnItems
<TableColumnItem>
    <ScriptBlock>
        Get-Process -Id $_.OwningProcess | select -ExpandProperty ProcessName
    </ScriptBlock>
</TableColumnItem>
# save ps1xml

# update format data
Update-FormatData -PrependPath $env:TEMP\formatdata.ps1xml
Get-Command Get-NetTCPConnection | select -Expand Module | select -Expand ExportedFormatFiles