问题描述
您好,提前感谢任何可以提供帮助的人。
我正在尝试编写一个 powershell 脚本,该脚本获取到包含某个关键短语的服务器的所有连接的列表,并将 DNS 名称和相应的 IP 输出到一个 csv 文件。
我遇到了一些打字问题。这是我尝试使用 NetTCPConnection 的代码:
# get remote addrs
$a = (Get-NetTCPConnection | Select-Object RemoteAddress)
# get IPs of valid addrs
Workflow Get-DNSNames([string[]]$IPAddresses){
foreach -parallel ($IP in $IPAddresses | Select-Object -Unique){
# $IP.ToString()
[system.net.dns]::GetHostEntry($IP)).hostname
try{
@{$IP = $(([system.net.dns]::GetHostEntry($IP)).hostname)}
}catch{
@{$IP = "N/A"}
}
}
}
# output to txt
$List = Get-DNSNames -IPAddresses $a
$List | Out-File "C:\temp\getBAS\IPAddresses_Complete.txt"
这是我对 netstat 的尝试:
# get netstat output
$a = netstat
$b = $a[3..$a.count] | ConvertFrom-string | Select p4 | Where p4 -like "*52*"
# get IP and create name,IP pairs
$c = @()
foreach ($DNS in $b) {
# name,IP
$rowToAdd = New-Object psobject
$name = $DNS
$IP = [System.Net.Dns]::GetHostAddresses($DNS.ToString())
$rowToAdd | Add-Member -Member NoteProperty -Name "Name" -value $name
$rowToAdd | Add-Member -Member NoteProperty -Name "IP" -value $IP
$c += $rowToAdd
}
$c
# output to csv
$final | Export-Csv -Path "C:\temp\getBAS\NetworkConnectionsBAS.csv" -NoTypeInformation
第一次尝试的问题是来自 NetTCPConnection 的值是对象,而不是字符串,GetHost 函数中需要字符串。我想不出将每个单独的 addr 对象转换为字符串的方法。
我第二次尝试的问题是我得到了一个古怪的 csv 输出。
坦率地说,我被困住了,希望得到任何帮助。谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)