1

У меня есть сценарий PowerShell, который имеет некоторые переменные

  1. $GetCon : получить соединение Tcp в Powershell
  2. $hn : получить развернуть удаленный адрес в $GetCon .
  3. $rrt : число всех результатов, все IP-адреса подключения.
  4. $GNamess : переменная для создания нового члена по имени (URL) для $GetCon который является Get-NetTCPConnection.

Наконец, у меня есть новый член, он будет содержать список имен хостов каждого соединения для каждого IP-адреса в Get-TCPConnection RemoteAddress.

Но мы не восстанавливаем результат хоста в результате, в результате у меня есть один хост для каждого хоста.

пожалуйста, дайте мне метод, чтобы получить все хосты в результате.

Неверный синтаксис:

$GetCon = Get-NetTCPConnection

$hn = $GetCon | select -expand RemoteAddress

$rrt = foreach ($IPs in $hn)
{

 [System.Net.Dns]::GetHostAddresses($IPs) | select-object IPAddressToString -expandproperty  IPAddressToString

}


$GNamess = foreach ($IPst in $GetCon) {

    $rrt = ([System.Net.Dns]::GetHostbyAddress($IPs) | select-object HostName -expandproperty  HostName)
    $IPst | Add-Member -NotePropertyName urls -NotePropertyValue $rrt -PassThru
}

$GetCon | select urls

Результат изображения : Результат изображения

1 ответ1

1

Слишком долго для комментариев и трудно угадать вашу цель из вашего кода, так что, возможно, создание словаря $IPsNames может помочь?

$IPsNames = @{}

$GetCon = Get-NetTCPConnection

$hn = $GetCon | select -expand RemoteAddress  | sort -Unique

foreach ( $IPs in $hn ) {

    try   { $rrtx = [System.Net.Dns]::GetHostbyAddress($IPs).HostName }
    catch { $rrtx = '???' }

    $IPsNames[ $IPS ] = $rrtx
}

### $IPsNames

for ( $i = 0; $i -lt $GetCon.Count; $i++ ) {

    $aux = $IPsNames[ $GetCon[$i].RemoteAddress ]
    $GetCon[$i] | Add-Member -NotePropertyName urls -NotePropertyValue $aux 

}

### $GetCon | Format-Table -Property RemoteAddress, urls -AutoSize

$GetCon | selelect -Property RemoteAddress, urls

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .