Eu estou supondo a razão pela qual o Powershell imprime isso para o seu segundo exemplo
[string]$A = $_
Write-Host $A
[string]$A = $_
Write-Host $A
é porque o Powershell usa a chave dupla { { } } como um literal de string.
Quanto a como fazer isso funcionar, você deve testar o $Array
antes de fazer o loop for.
Veja como o código deve ficar:
$Array = @(“This”,”is”,”a”,”test”)
if($Array.Count -ge 1){
foreach($A in $Array){
Write-Host $A
}
}
E como um liner (ish)
$Array = @(“This”,”is”,”a”,”test”)
if($Array.Count -ge 1){ $Array| %{Write-Host $_}}