PowerShellを使用してサーバーのリストへのネットワーク接続をテストし、trueが返された場合にのみテキストファイルにダンプしようとしています。私のコードで何が起こるかというと、pingを実行しなかったサーバーが含まれているということです。これが私が持っているものです:
$servers = Get-Content c:\script\servers.txt
foreach($server in $servers)
{
Test-Connection $server -count 1 -quiet
if ($True){out-file -InputObject $server, $True -Encoding ASCII -Width 50 -Append c:\scriptoutput.txt}
else { write-host "server $server could not be contacted"}
}
これで、出力ファイルに表示されるのは
server1
True
server2
True
server3
True
しかし、私がコンソールに表示するのはこれです:
PS C:\> C:\test.ps1
True
True
False
サーバー3は存在しないため、pingを実行できませんが、出力ファイルではTrueとして表示されますが、コンソールではFalseと表示されます。何が得られますか?