【发布时间】:2018-06-04 09:30:44
【问题描述】:
我目前正在尝试获取显示域 IP 地址和域本身的 CSV 文件。我会手动执行此操作,但我正在测试接近 1K 的域。
这是我当前的代码:
$Domains = Get-Content "X:\User\URLs.txt"
$collection = $()
foreach($Domain in $Domains)
{
Write-Host "Testing $Domain"
$status = @{ "Domain" = $Domain}
$result = [system.net.dns]::GetHostAddresses($Domain)
if($result)
{
$status.Results = "UP"
$status.IP = [system.net.dns]::GetHostAddresses($Domain).IPAddressToString
Write-Host "GOOD"
}#END If
else
{
$status.Results = "Down"
$status.IP = "N/A"
$status.DNS = if (-not(Resolve-DnsName -Name $Domain -ErrorAction SilentlyContinue))
{
Write-Output -Verbose "$Domain -- Not Resolving"
}#END inner if
else
{
"$Domain resolving"
}#END inner else
}#END else
New-Object -TypeName PSObject -Property $status -OutVariable domainStatus
$collection += $domainStatus
}#END forEach
$collection | Export-Csv -LiteralPath "X:\User\DomainList.csv" -Append -Force
我遇到的问题是某些域有超过 1 个 IP 地址,当我打开 CSV 文件时,我会为超过 1 个 IP 的域得到一个 System.Object[]。在大多数情况下,我使用Resolve-DnsName inside Test-Connection 创建此代码,但同样,问题是当 IP 超过 1 个时。
谢谢!
【问题讨论】:
标签: powershell csv dns ip