出于某种原因,Get-VM命令并不总是返回Notes?

时间:2018-03-12 20:07:32

标签: powershell scripting windows-server-2012-r2

我尝试编写一个简单的PS脚本来获取Hyper-V主机上的VM列表,但出于某种原因Notes并不总是返回-ExpandProperty NetworkAdapters用来。见屏幕截图:

See screenshot here

以下是我使用的两个不同命令:

Get-VM | Select-Object -ExpandProperty NetworkAdapters | Select-Object VMName,Status, IPAddresses,ComputerName, Hostname, Notes | Format-Table -AutoSize
Get-VM | Select-Object VMName,IPAddresses,ComputerName, Hostname, Notes | Format-Table -AutoSize

我试图获得:

  • VM名称(VMName
  • VM的状态(是否正在运行/停止。Status似乎正常运行)
  • IPv4地址(我使用IPAddresses
  • VM的主机名(ComputerNameHostname目前无法正常工作,我稍后会详细说明)
  • vm上的
  • 注释Notes并不总是返回值)

所以任何想法为什么Notes都不会总是返回?

1 个答案:

答案 0 :(得分:0)

如果尝试将Get-VM | Select-Object -ExpandProperty NetworkAdapters传递给get-member,它将不会返回Notes属性。这就是为什么你不能让它显示笔记。

你可以制作一个pscustomobjet,也许是这样的。

$vms = Get-VM

ForEach ($vm in $vms) {
    [PSCustomObject][ordered]@{
        'VMName'                   = $vm.Name
        'VM Status '               = $vm.Status
        'IP addresse'              = ($vm | Select-Object -ExpandProperty NetworkAdapters).ipaddresses
        'Bytes Total/sec Ethernet' = $vm.computername
        'Bytes Total/sec WiFi'     = $vm.notes
    }    
}

/安德斯