回答していただきありがとうございます。私はあなたに答えを試みましたが、私はVMware用のPowerCLIを使用しているようですが、Select-Object -Expand(例外があるかどうかわかりません)を含んでいないようです。これに適した答えに達する。
私が以下で使用していると、それは以下のようにそれらを読んで、その後のforeachを使用して、配列内の値を追加し、うまく働いた:彼らはいくつかを持っていたとして
$p1vmname = Get-VMHost -Name hq-esxi-prod-01a.nsx.gss | Get-VM | select Name
$p1vmlist = @()
foreach ($p1line in $p1vmname)
{
$p1vmlist += $p1line
}
$p1 = 0
do {
$x = $p1+1
Write-Host -BackgroundColor:Black -ForegroundColor:Yellow "vm number $x is "$p1vmlist[$p1]"."
$p1++
}
until ($p1 -eq $p1vmc)
}
をただし、この名前を使用している場合、完全に間違っていました以下のように追加の文字:
vm number 1 is @{Name=HQ-Web-01a}
vm number 2 is @{Name=HQ-LinServ-01a}
vm number 3 is @{Name=HQ-Win2012-01a}
私はスプリットとトリムを使用してこれらを以下のように取り除き、正常に動作しました。
$p1vmname = Get-VMHost -Name hq-esxi-prod-01a.nsx.gss | Get-VM | select Name
$p1vmlist = @()
foreach ($p1line in $p1vmname)
{
$p1vmlist += $p1line
}
$p1 = 0
do {
$x = $p1+1
$p1vmlist[$p1] = ($p1vmlist[$p1]) -split("=") | Select-Object -Last 1
$p1vmlist[$p1] = $p1vmlist[$p1].trimend("}")
Write-Host -BackgroundColor:Black -ForegroundColor:Yellow "vm number $x is "$p1vmlist[$p1]"."
$p1++
}
until ($p1 -eq $p1vmc)
}
出力:
vm number 1 is HQ-Web-01a .
vm number 2 is HQ-LinServ-01a .
vm number 3 is HQ-Win2012-01a .
私をたくさん助けたあなたの答えをありがとうございました。
私は今、スクリプトを楽しんでいます。