[cmdletbinding()] param ( [string[]]$targets ) cls foreach ($targetHost in $targets){ [xml]$nmapResults = nmap -Pn -oX - $targetHost; $portResults = @(); foreach ($port in $nmapresults.nmaprun.host.ports.port){ $portinfo = New-Object System.Object; $portinfo|add-member -membertype noteproperty -name hostname -value $targetHost; $portinfo|add-member -membertype noteproperty -name protocol -value $($port.protocol); $portinfo|add-member -membertype noteproperty -name portid -value $($port.portid); $portinfo|add-member -membertype noteproperty -name state -value $($port.state.state); $portinfo|add-member -membertype noteproperty -name reason -value $($port.state.reason); $portinfo|add-member -membertype noteproperty -name reason_ttl -value $( $port.state.reason_ttl); $portinfo|add-member -membertype noteproperty -name servicename -value $($port.service.name); $portinfo|add-member -membertype noteproperty -name method -value $($port.service.method); $portinfo|add-member -membertype noteproperty -name conf -value $($port.service.conf); $portResults += $portinfo; } } $portresults |ft -auto;