以下のような1つのファイルをフォーマットしようとしています。
IPAddresss HostName Result
none sinuiy01.infra.go2uti.com NotValid
none sinuid20.devtst.go2uti.com NotValid
172.21.40.204 USEM9999.essilor.res Success
172.21.40.204 webmail.nscorp.com NotValid
172.21.40.204 nsc.nscorp.com Unsuccess
172.21.40.204 bp-nsc.nscorp.com NotValid
しかし、以下のような結果が必要です:--
IPAddresss HostName Result
none sinuiy01.infra.go2uti.com NotValid
none sinuid20.devtst.go2uti.com NotValid
172.21.40.204 USEM9999.essilor.res Success
172.21.40.204 webmail.nscorp.com NotValid
172.21.40.204 nsc.nscorp.com Unsuccess
172.21.40.204 bp-nsc.nscorp.com NotValid
上記の結果を得るためにどの関数を使用すればよいか教えてください。
以下はスクリプトです: -
これが現在取り組んでいるスクリプトです
"IPAddresss HostName Result" | Out-File -Append D:\CEP\testlogging.txt
$lines = Get-Content myfile.txt | Where {$_ -notmatch "((^#)|(^\s+$))"}
foreach ($line in $lines) {
$fields = $line -split '\s+'
$ip = $fields[0]
for ($i = 1; $i -lt $fields.Length; $i++) {
$ESXHost = $fields[$i]
echo "Host $ESXHOST"
try
{
$currentConnection = Test-Connection $ESXHost -ErrorAction stop
if($currentConnection.Count -gt 0)
{
$hostIP = ($currentConnection)[$i].IPV4Address.IPAddressToString
echo "hostIp $hostIP"
if ($hostIP -eq $ip)
{
"$hostIP $ESXHost Success" | Format-Table -Wrap -AutoSize | Out-File -Append D:\CEP\testlogging.txt
}
else
{
"$hostIP $ESXHost Unsuccessful" | Format-Table -Wrap -AutoSize | Out-File -Append D:\CEP\testlogging.txt
}
}
}