Aquí hay otra muestra impresionante de PowerShell.com eso muestra lo poderoso que puede ser PowerShell. Es un simple Escáner de puerto de red que escanea una computadora remota para encontrar si esa computadora es accesible a través de un puerto de red determinado.
Consulte el código a continuación para su referencia, pero también puede ir a la parte inferior para descargar el código fuente y ejecutarlo para ver cómo funciona. Básicamente, al conectar el conector de red Windows .Net TcpClient, el script puede hacer una conexión a una computadora remota a través de un puerto determinado. Si se conecta, devuelve True como una indicación de que el puerto está abierto en la computadora remota. O, si se agota el tiempo de espera, devuelve False como una indicación de que el puerto está cerrado.
#requires -Version 1
function Test-Port
{
Param([string]$ComputerName,$port = 5985,$timeout = 1000)
try
{
$tcpclient = New-Object -TypeName system.Net.Sockets.TcpClient
$iar = $tcpclient.BeginConnect($ComputerName,$port,$null,$null)
$wait = $iar.AsyncWaitHandle.WaitOne($timeout,$false)
if(!$wait)
{
$tcpclient.Close()
return $false
}
else
{
# Close the connection and report the error if there is one
$null = $tcpclient.EndConnect($iar)
$tcpclient.Close()
return $true
}
}
catch
{
$false
}
}
El script toma un nombre de computadora remota o una dirección IP y, opcionalmente, un número de puerto y un tiempo de espera. El puerto predeterminado es 5985, que se usa para la comunicación remota de PowerShell, así como para la administración remota de Windows (WinRM). Por ejemplo:
Es bastante fascinante ver lo que puede hacer PowerShell. Simplemente descargue el archivo desde abajo yEjecútelo con PowerShell desde el menú contextual.