2017-05-22 23 views
1

此命令將VM列表保存到陣列。使用powershell將VM的名稱保存到陣列

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

當它指向數組的第一個元素:$arrayVM[0]

我得到的虛擬機的名稱,但該值的樣子:@{name=MACHNINE_1_NAME}

我預計只有同一個名字:MACHNINE_1_NAME

我該怎麼做?

回答

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

您需要的-ExpandProperty參數添加到您的Select-Object命令。這樣做擴展了指定屬性的值,並將其傳遞到管道中,而不是限制當前對象的屬性傳遞到管道中。現在你只傳遞一個Microsoft.HyperV.PowerShell.VirtualMachine對象,只有Name屬性完好無損。這將通過一個stringName屬性的值。

$arrayVM = Get-VM | select -expand Name