O Format-*
cmdlets (seu fl
é Format-List
) deve formatar a saída para visualização no console. Não volte a analisá-los para valores. Colete os objetos retornados pelo Get-VM
e acesse as propriedades diretamente.
# Get the VM object
$vm = Get-VM WMDC2
# check if the 'state' property equals 'Running'
if ($vm.state -eq 'Running') {
Write-Host 'Running'
}
E se você não quiser armazenar o objeto da VM por algum motivo, também é possível criar um shorthand assim.
if ((Get-VM WMDC2).state -eq 'Running'){
Write-Host 'Running'
}
I don't think this is a bad way of doing it
É uma maneira ruim de fazer isso, mas não é sua culpa. É comum que os Powershellers iniciantes entrem e comecem a tentar entender todas as coisas. Sem se aprofundar muito nos objetos do Powershell, a pior parte dessa abordagem é que você perde a utilidade embutida (propriedades, métodos, capacidade do pipeline) para o objeto retornado por Get-VM
.