[英]Powershell Format-Table resulting in empty columns
运行:
get-vm -server hyperv
get-vm -server hyperv | format-table -AutoSize
结果是5列输出,所有5列的数据均符合预期。
运行:
get-vm -server hyperv | select VMElementName,State,Host | format-table -AutoSize
get-vm -server hyperv | format-table -Property VMElementName,State,Host -AutoSize
结果为3列,仅VMElementName列中有数据。 减少列数的任何尝试都会导致所有结果,但VMElementName列为空。 更改顺序无效。 选择任何一列都没有区别。 仅VMElementName列包含数据。
如何获得其余数据以显示?
使用Server 2008 R2中的Hyper-V模块,Get-VM返回类型为System.Management.ManagementObject#root\\virtualization\\Msvm_ComputerSystem
。 换句话说,这些是基于WMI的对象,其中WMI类是Msvm_ComputerSystem
。
您的问题是该对象不包含您要的某些属性。
如果您执行Get-VM | Get-Member
Get-VM | Get-Member
,您可以看到可用的实际属性,我想您想要的是
Get-VM | FT Elementname, statusdescriptions,pscomputername
Elementname statusdescriptions PSComputerName
----------- ------------------ --------------
Lync - SE {Operating normally} COOKHAM8
Lync - QMS {Operating normally} COOKHAM8
Lync - DC {Operating normally} COOKHAM8
Lync - SPS2010 {Operating normally} COOKHAM8
DEV1 - win7+Dev tools {Operating normally} COOKHAM8
S1.Cookham/Net (Srv2012) {Operating normally} COOKHAM8
SQL2012 {Operating normally} COOKHAM8
W8.Cookham.Net(w8 RTM) {Operating normally} COOKHAM8
Lync - EXUM {Operating normally} COOKHAM8
SQL2008 {Operating normally} COOKHAM8
空的Format-Table
列通常指示关联的属性不存在,或者每个项目的值为$ null或空字符串。 如果查看Windows 8(已创建一个Hyper-v VM)上的Get-VM的输出,则看不到这些属性。 您可以使用Get-Member
查看可用的属性,如下所示:
Get-VM -server hyperv | Get-Member
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.