运行:
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
仅在VMElementName列中生成包含数据的3列输出。任何减少列数的尝试都会导致除VMElementName列之外的所有列都为空。更改订单无效。选择任何单个列都没有区别。只有VMElementName列包含数据。
如何显示其余数据?
答案 0 :(得分:3)
使用Server 2008 R2中的Hyper-V模块,Get-VM返回System.Management.ManagementObject#root\virtualization\Msvm_ComputerSystem
类型的对象。换句话说,这些是基于WMI的对象,其中WMI类为Msvm_ComputerSystem
。
您的问题是此对象不包含您要求的某些属性。
如果您执行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
答案 1 :(得分:1)
空Format-Table
列通常表示关联的属性不存在,或者每个项的值为$ null或空字符串。如果我查看Windows 8上的Get-VM输出(我创建了一个hyper-v VM),我就看不到这些属性了。您可以使用Get-Member
查看可用的属性,如下所示:
Get-VM -server hyperv | Get-Member