2

跑步:

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 列包含数据。

如何获取要显示的其余数据?

4

2 回答 2

3

使用 Server 2008 R2 中的 Hyper-V 模块,Get-VM 返回类型为 的对象System.Management.ManagementObject#root\virtualization\Msvm_ComputerSystem。换句话说,这些是基于 WMI 的对象,其中 WMI 类是Msvm_ComputerSystem.

您的问题是该对象不包含您要求的某些属性。

如果你做 a 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
于 2012-10-10T11:55:38.670 回答
1

Format-Table列通常表示关联的属性不存在,或者每个项目的值为 $null 或空字符串。如果我查看 Windows 8 上 Get-VM 的输出(我在其中创建了一个 hyper-v VM),我看不到这些属性。您可以使用如下方式查看可用的属性Get-Member

Get-VM -server hyperv | Get-Member
于 2012-10-10T01:07:20.547 回答