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

Проверка открытых портов rdp из скрипта

Мне нужно узнать, какие серверные порты прослушивают порт 3389. Мне нужно проверить 2500 серверов, некоторые из которых находятся в разных vlan, чтобы убедиться, что удаленный рабочий стол включен.

Можно ли использовать netstat для проверки этого и использовать его для диапазона IP .. или лучше всего использовать команду powershell

новый объект system.net.sockets.TCPclientList xsevernamex, 3389

Я предпочитаю PowerShell. Сообщите мне, если это потребует каких-либо корректировок. input.txt - это просто список компьютеров.

$computers = Import-Csv input.txt -Header "Name" 
$output = @()

$computers | ForEach-Object {
    $current = "" | Select-Object "Name","RdpOpen"
    $result = Test-NetConnection $_.Name -CommonTCPPort RDP 

    $current.Name = $_.Name
    $current.RdpOpen = $result.TcpTestSucceeded
    $output += $current
}

$output | Export-Csv output.csv -NoTypeInformation

nmap отлично подходит для этого:

nmap -v -p 3389 -iL list-of-hosts.txt -oX results.xml

приведет к созданию XML-файла, который можно проанализировать программно, но существуют и другие параметры вывода.