Мне было интересно, как я могу вернуть вывод Resolve-DnsName
из своего сценария Test-Connection
и добавить его в CSV, который я создал.Resolve-DnsName внутри Test-Connection
Мне нравится захватывать название, тип, TTL, раздел из этого, пожалуйста.
Только вызовите Resolve-DnsName
, когда пинг не удался.
$servers = Get-Content "servers.txt"
$collection = $()
foreach ($server in $servers)
{
$status = @{ "ServerName" = $server; "TimeStamp" = (Get-Date -f s) }
$result = Test-Connection $server -Count 1 -ErrorAction SilentlyContinue
if ($result)
{
$status.Results = "Up"
$status.IP = ($result.IPV4Address).IPAddressToString
}
else
{
$status.Results = "Down"
$status.IP = "N/A"
$status.DNS = if (-not(Resolve-DnsName -Name $server -ErrorAction SilentlyContinue))
{
Write-Output -Verbose "$server -- Not Resolving"
}
else
{
"$server resolving"
}
}
New-Object -TypeName PSObject -Property $status -OutVariable serverStatus
$collection += $serverStatus
}
$collection | Export-Csv -LiteralPath .\ServerStatus3.csv -NoTypeInformation
но ничего нового не добавлено в CSV.
Не предполагайте. Пытаться. Если это не удается: вернитесь и покажите, что вы пробовали, а также результаты, которые вы получили. –
Если ничего не добавлено, я подозреваю, что имя действительно решит. Добавьте ветку 'else' в этот оператор, чтобы убедиться:' $ status.DNS = if (...) {...} else {"$ server resolving"} ' –
Я пробовал, что ничего не выписано вообще , Любые другие предложения, пожалуйста? – Steve