Powershell

導出到 csv 的 Powershell 管道正在失去數據

  • September 4, 2014

我正在嘗試編寫一個腳本,該腳本將從 IP 地址的 .txt 文件中獲取輸入。執行反向 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 $$“我之前使用過的,它完全符合我的預期。

引用自:https://serverfault.com/questions/592640