Powershell 中的不同输出(可能 trim 个对象?!)
Different Outputs in Powershell (possible to trim Objects?!)
我想从 vCenter 中的不同 VM 中提取所有 GuestOS 名称,并希望将它们逐一列出。应该修剪输出,以便只显示 Guest OS 名称(没有“$.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 : 美分OS 4/5/6/7 (64-bit)
$_.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 位)
输出 "normal" Powershell 控制台:
$_.ExtensionData.Guest.GuestFullName
微软 Windows Server 2008 R2(64 位)
微软 Windows Server 2012(64 位)
分OS 4/5/6/7(64 位)
分OS 4/5/6(32 位)
我希望得到与后者相同的输出(甚至没有 Extensiondata..)。有什么想法吗?
为什么还是不一样?
谢谢!
我相信您正在尝试检索子 属性 对象的 属性 值,请参阅此 link 中的示例 9 了解更多详细信息:
Get-VM | Select @{N="GuestFullName";E={$_.ExtensionData.Guest.GuestFullName}}
我想从 vCenter 中的不同 VM 中提取所有 GuestOS 名称,并希望将它们逐一列出。应该修剪输出,以便只显示 Guest OS 名称(没有“$.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 : 美分OS 4/5/6/7 (64-bit)
$_.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 位)
输出 "normal" Powershell 控制台:
$_.ExtensionData.Guest.GuestFullName
微软 Windows Server 2008 R2(64 位)
微软 Windows Server 2012(64 位)
分OS 4/5/6/7(64 位)
分OS 4/5/6(32 位)
我希望得到与后者相同的输出(甚至没有 Extensiondata..)。有什么想法吗?
为什么还是不一样?
谢谢!
我相信您正在尝试检索子 属性 对象的 属性 值,请参阅此 link 中的示例 9 了解更多详细信息:
Get-VM | Select @{N="GuestFullName";E={$_.ExtensionData.Guest.GuestFullName}}