Quick Firewall Port Status

Quick way to check the ports open in a windows machine…netstat -a

Powershell script to check list of ports open on windows machine

<#
.NOTES
===========================================================================
Created on: 12/03/2015 11:00 AM
Created by: Pramod S KumarĀ 
Filename: GetFirewallStatus.ps1
===========================================================================
.DESCRIPTION
Checks firewall ports based on environment
.Usage: .\GetFirewallStatus.ps1 -CSVFile “ListofPorts.csv”
#>
param (
[string]$CSVFile = $null
)
function Check-FirewallState
{
[CmdletBinding()]
param
(
[Parameter(Position = 1, Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[string]$CsvFileName
)
$CsvObject = Import-Csv $CsvFileName
$OutArray = @()
foreach($line in $CsvObject)
{
$RemoteServer = $($line.’IP Address’)
$Port = $($line.’Port Number’)
if (![string]::IsNullOrEmpty($RemoteServer) -and ![string]::IsNullOrEmpty($Port))
{
$myobj = “” | Select “Hostname”,”Port”,”Status”
$myobj.Hostname = $RemoteServer
$myobj.Port = $Port
Try
{
$tcp = New-Object System.Net.Sockets.TcpClient
Write-Host “Connecting to “$RemoteServer”:”$Port” (TCP)..”;
$myobj.Status = “Open”
$tcp.Connect($RemoteServer, $Port);
Write-Host “Connection successful” -ForegroundColor Green;
}
Catch
{
Write-Host “Connection failed” -ForegroundColor Red;
$myobj.Status = “Closed”
}
Finally
{
$tcp.Dispose();
}
$OutArray += $myobj
$myobj = $null
}
}
$OutArray | export-csv “PortStatus.csv”
}
Check-FirewallState $CSVFile

Above script takes input from csv file(listofports.csv) in below format and creates output file portstatus.csv. Script can be downloaded here.

Excelsheet
Connection