Мне нужно выяснить, какие серверные порты прослушивают порт 3389. Мне нужно проверить 2500 серверов, некоторые из которых находятся в разных vlan, чтобы убедиться, что удаленный рабочий стол включен.
Можно ли использовать netstat для проверки этого и использовать его для диапазона IP-адресов .. или лучше всего использовать команду powershell
new-object system.net.sockets.TCPclientList xsevernamex, 3389
nmap
отлично подходит для этого: В результате
nmap -v -p 3389 -iL list-of-hosts.txt -oX results.xml
получится файл XML, который можно будет разобрать программно, но существуют и другие опции вывода.
Я предпочитаю паутинную оболочку. Дайте мне знать, если это потребует каких-либо настроек. 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