我需要找出哪些服务器端口正在监听端口 3389。我必须检查 2500 台服务器(其中一些位于不同的 VLAN 中),以确保远程桌面已启用。
可以使用 netstat 检查这一点并针对 IP 范围使用吗?或者最好使用 powershell 命令
新对象 system.net.sockets.TCPclientList xsevernamex, 3389
答案1
nmap
非常适合这个:
nmap -v -p 3389 -iL list-of-hosts.txt -oX results.xml
将生成一个您可以通过编程来解析的 XML 文件,但也存在其他输出选项。
答案2
我更喜欢 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