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

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

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

new-object system.net.sockets.TCPclientList xsevernamex, 3389

2 ответа

Решение

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

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

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

Я предпочитаю 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
Другие вопросы по тегам