我使用此代码从 vSphere 检索虚拟机列表。
[string]$arrayVM = (Get-VM | Select-Object -Property Name).Name
Write-Host($arrayVM)
很好,因为我得到了以下输出
N1.windows1 N2.linux1 N3.linux2
但是,当我使用 时Write-Host($arrayVM[0])
,我得到的是N
。我希望得到N1.windows1
。我该如何解决这个问题?
答案1
在第一行中,您将值强制转换为类型string
。这就是为什么$arrayVM
根本不是数组的原因(除了字符串是字符数组的意义上)。
相反,第一行应该如下所示(假设您的 PS 版本足够新):
[string[]]$arrayVM = (Get-VM).Name