【问题标题】:Different Outputs in Powershell (possible to trim Objects?!)Powershell 中的不同输出(可以修剪对象?!)
【发布时间】:2019-01-23 11:44:09
【问题描述】:

我想从 vCenter 中的不同虚拟机中提取所有 GuestOS 名称,并希望将它们列在另一个下方。应该修剪输出,以便只显示来宾操作系统名称(没有“$.Extension...”)-ExpandProperty 在这里是不够的。

$Oss=Get-VM | select {$_.ExtensionData.Guest.GuestFullName}  -Unique
$Oss

使用 PS1 文件或在 Powershell ISE 中输出:

$_.ExtensionData.Guest.GuestFullName : Microsoft Windows Server 2012(64 位)

$_.ExtensionData.Guest.GuestFullName : CentOS 4/5/6/7(64 位)

$_.ExtensionData.Guest.GuestFullName : Linux 3.10.0-862.14.4.el7.x86_64 CentOS Linux 版本 7.5.1804(核心)

$_.ExtensionData.Guest.GuestFullName : SUSE Linux Enterprise 11(64 位)

输出“正常”的 Powershell 控制台:

$_.ExtensionData.Guest.GuestFullName


Microsoft Windows Server 2008 R2(64 位)

Microsoft Windows Server 2012(64 位)

CentOS 4/5/6/7(64 位)

CentOS 4/5/6(32 位)

我希望获得与后者相同的输出(甚至没有 Extensiondata..)。有什么想法吗?

为什么还是不一样?

谢谢!

【问题讨论】:

    标签: powershell trim powercli


    【解决方案1】:

    我相信您正在尝试检索对象子属性的属性值,有关详细信息,请参阅此链接中的示例 9:

    PowerShell Select Object

    Get-VM | Select @{N="GuestFullName";E={$_.ExtensionData.Guest.GuestFullName}}
    

    【讨论】:

    • 您还可以添加其他属性,例如:Get-VM |选择 Property1,Property2,@{N="GuestFullName";E={$_.ExtensionData.Guest.GuestFullName}}
    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 2011-10-08
    • 2016-10-31
    • 2019-09-29
    • 1970-01-01
    • 2010-10-03
    相关资源
    最近更新 更多