使用 powershell 将 VM 的名称保存到数组

save the name of VM to array using powershell

此命令将 VM 列表保存到数组。

[string]$arrayVM = Get-VM | select Name

引用数组第一个元素时:$arrayVM[0]

我得到了 VM 的名称,但是这个值看起来像:@{name=MACHNINE_1_NAME}

我希望只有同一个名字:MACHNINE_1_NAME

我该怎么做?

[string]$arrayVM = Get-VM | select Name
$arrayVM[0].Name
[string]$ArrayVM = (Get-VM | Select-Object -Property Name).Name

您需要将 -ExpandProperty 参数添加到 Select-Object 命令中。这样做是扩展指定 属性 的值并将其向下传递到管道,而不是限制当前对象的属性向下传递到管道。现在你正在传递一个 Microsoft.HyperV.PowerShell.VirtualMachine 对象,只有 Name 属性 完好无损。这将改为传递 stringName 属性.

的值
$arrayVM = Get-VM | select -expand Name