Назад | Перейти на главную страницу

При экспорте трубы Powershell в CSV теряются данные

Я пытаюсь написать сценарий, который будет принимать входные данные из файла .txt с IP-адресом. Выполните обратный поиск в DNS, чтобы получить имя хоста IP-адреса, а затем экспортируйте эти данные в файл .csv.

Вот что у меня есть на данный момент.

# getting the IP's from the file


$IPADDR = Get-Content "C:\Users\douglasfrancis\Desktop\IP_Test.txt"


ForEach ($IPADDR in $IPADDR)
{
  [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR -    MemberType NoteProperty -PassThru | select IP, HostName | sort -property Hostname | export-    csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv" 

}

Как сейчас созданный файл CSV будет иметь заголовки столбцов, которые я назначил, и последний IP-адрес в списке с его именем хоста. Так что как-то он отбрасывает все остальное.

Если я запустил его с закомментированным файлом export-csv, тогда все IP-адреса отображаются в консоли, но не сортируются по имени хоста.

Раньше я без проблем использовал эту же базовую трубу, поэтому я немного не понимаю, что здесь происходит. Любая помощь была бы потрясающей.

Спасибо,

Взял перерыв и вернулся к нему. Понял, чего мне не хватало, и теперь это работает, как должно.

$SortIP =@()
ForEach ($IPADDR in $IPADDR)
{
  $SortIP += [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value     $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName 
}

$SortIP | sort -property Hostname | export-csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv" -NoTypeInformation

в основном добавил переменную «$ SortIP» и использовал «+ = [System.Net.DNS]» вместо «= [System.Net.DNS]», который я использовал ранее, и он делает именно то, что я ожидал.

Это может мне очень помочь. Я пытался добавить в сценарий, чтобы он записывал записи, у которых нет обратного просмотра DNS. В файле, который я запускаю, у меня есть 9 IP-адресов в списке из 2700, у которых нет реверса.

Пока мне удалось записать только удачные. 9 файлов, которые я пытаюсь включить, также получают такую ​​ошибку:

ERROR: Exception calling "GetHostByAddress" with "1" argument(s): "The requested name is valid, but no data of the requested type was found"
ERROR: At C:\SANDBOX\Reverse DNS Pipe fails CSV with SORT.ps1:21 char:48
ERROR: +   $SortIP += [System.Net.DNS]::GetHostbyAddress <<<< ($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName
ERROR:     + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
ERROR:     + FullyQualifiedErrorId : DotNetMethodException
ERROR:

Это сценарий, который я запускаю:

# getting the IP's from the file

$IPADDR = Get-Content "C:\SANDBOX\inputips.txt"
$SortIP =@()

foreach ($IPADDR in $IPADDR)
{
  $SortIP += [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName 
}

$SortIP | sort -property Hostname | export-csv "C:\SANDBOX\ReverseLookupSORT.csv" -NoTypeInformation