Viele kennen das Cmdlet Test-Connection oder Test-NetConnection um Verbindungen zu testen. Dort kann per -TcpPort bzw. -Port kann auch ein Port geprĂŒft werden. Allerdings wird in beiden Varianten ein Ping vorausgesandt.
Es kann aber sein, dass die „Internet Control Message Protocol (ICMP) Echo Requests“ zu denen auch Pings gehören, in Firewalls gesperrt ist. Trotzdem möchte man aber vielleicht den direkten Port testen.
Dabei hilft das unten stehende Skript:
$destination = "192.168.2.1"
$port ="443"
$connection = new-object Net.Sockets.TcpClient
try{
$connection.Connect($destination, $port)
} catch {}
if($connection.Connected)
{
$connection.Close()
$object = [pscustomobject] @{
IP = $destination
TCPPort = $port
Result = $True }
Write-Output $object
}
else
{
$object = [pscustomobject] @{
IP = $destination
TCPPort = $port
Result = $False }
Write-Output $object
}
Write-Host $msg