Vamos a adentrarnos en cómo construir una herramienta de prueba de puerto de PowerShell que te permita probar puertos abiertos por número de puerto y etiqueta.
Para construir un script robusto que no se vaya a caer y morir en la mitad de tus servidores, es importante primero asegurarse de que se cumplan los requisitos previos necesarios para obtener el resultado final.
¿Cuáles son estos requisitos previos? Los requisitos previos son servicios como FTP, HTTP, DCOM, WMI, WSMAN, etc. La conexión que estás intentando hacer a un servidor típicamente depende de servicios como estos.
Existe una jerarquía de varios niveles de comprobaciones que puedes realizar en tus servidores antes de intentar realizar una conexión, dependiendo de qué tan minucioso quieras ser.
Para empezar, tienes toda la pila OSI para atravesar en el lado de la red. Eso no incluye los servicios en el sistema host desde el cual estás ejecutando el script y todo lo demás en el sistema host remoto.
Una de las primeras pruebas que debes realizar al consultar un servidor remoto es verificar que los puertos de red apropiados estén abiertos y accesibles. Dependiendo de los servicios que se ejecuten en el servidor remoto, dependerán los puertos que necesitas consultar.
I always used to either not even attempting to test port connections or fumbling around with finding that latest Test-Port script I had scavenged somewhere. Once I found it to figure out what ports I actually needed to a test ahead of time. Today was the final straw.
I needed to query a set of domain controllers before running some CIM queries against them. I went about my normal fumbling around and decided enough was enough and sat down and built my own, fully featured port testing script.
Con la ayuda de este script de Technet, logré crear un buen par de funciones de PowerShell que no solo te permitirán probar puertos TCP y UDP abiertos, sino también probar grupos de puertos por rol de servidor. ¡No más buscar en Google cada vez para saber qué puertos usa qué servicio!
Concedido, especialmente para Active Directory, los puertos pueden variar según el sistema operativo del servidor, varios servicios en un controlador de dominio, etc. Siéntase libre de ajustarlos según sea necesario para su entorno.
Aquí hay una captura de pantalla de un ejemplo de uso:

Como puede ver, puede especificar tantos servidores como desee y generará una lista ordenada de objetos divididos por el grupo de puertos de servicio y el puerto para cada computadora. ¡Hasta ahora ha sido muy útil! ¡Espero que le saques tanto provecho como yo!