¿Cómo puede averiguar qué proceso está escuchando en un puerto en Wind

¿Cómo puede averiguar qué proceso está escuchando en un puerto en Windows?

¿Cómo puede averiguar qué proceso está escuchando en un puerto de Windows?

Mostrar la mejor respuesta

Currports es una herramienta que ayuda a buscar y filtrar también nirsoft.net/utils/cports.html

Avatar TMN

Me encontré con esto mientras intentaba ejecutar Tomcat en modo de depuración en IntelliJ, la mejor solución para mí resultó ser cambiar la configuración de transporte de depuración (Archivo-> Configuración-> Construir / exe / desplegar-> Depurador) de "socket" a "memoria compartida".

PowerShell

Get-Process -Id (Get-NetTCPConnection -LocalPort portNumber).OwningProcess
 

cmd

 C:\> netstat -a -b
 

(Agregue -n para evitar que intente resolver nombres de host, lo que lo hará mucho más rápido).

Tenga en cuenta la recomendación de Dane para TCPView . ¡Se ve muy útil!

-a Muestra todas las conexiones y puertos de escucha.

-b Muestra el ejecutable involucrado en la creación de cada conexión o puerto de escucha. En algunos casos, los ejecutables conocidos albergan múltiples componentes independientes, y en estos casos se muestra la secuencia de componentes involucrados en la creación de la conexión o el puerto de escucha. En este caso, el nombre del ejecutable está en [] en la parte inferior, en la parte superior está el componente al que llamó, y así sucesivamente hasta que se llegó a TCP / IP. Tenga en cuenta que esta opción puede llevar mucho tiempo y fallará a menos que tenga permisos suficientes.

-n Muestra direcciones y números de puerto en forma numérica.

-o Muestra el ID del proceso propietario asociado con cada conexión.

-o para obtener el PID

y taskkill / PID para luego finalizar el proceso, usando / F si corresponde.

Es posible que deba ejecutar su shell de línea de comandos como administrador; de lo contrario, puede recibir un mensaje de error sobre privilegios insuficientes. Use la opción "Ejecutar como administrador" al hacer clic con el botón derecho en cmd.exe.

Funciona pero requiere un permiso elevado. Shift + clic derecho en el icono de comando -> ejecutar como administrador

Al usar -o para mostrar PID, puede canalizarlo a grep para el número de puerto (si cygwin o msys están instalados) ya que el pid se muestra en la misma línea en lugar del nombre del proceso que se muestra en una línea separada.

A veces no puedo ejecutar mi servidor httpd de Apache porque PID 4 está tomando el puerto 80 por alguna razón. El problema es que el proceso con PID 4 está bien El "Sistema". Reiniciar ayuda, pero si alguien sabe la razón o una forma de averiguar por qué el sistema está tomando el puerto 80, soy todo oídos.

@BradWilson "-b" es una opción no válida, utilice netstat -a -d

@BradWilson y @Sathish Parece que las opciones de netstat no son tan estándar. Tuve que usar netstat -a -n -p . Las opciones -b y -d no están disponibles. La opción -o era para temporizadores. Las opciones -p muestran el nombre del programa y el PID. (en Debian 8).

netstat 1.42 (15-04-2001) no tiene bandera -b

Después de obtener el PID, digamos que es 1234 , puede usar tasklist /fi "pid eq 1234" para averiguar el nombre y otros detalles del proceso.

En mi sistema, el resultado de este comando, además de ser terriblemente difícil de leer debido al ajuste, desbordó el búfer del símbolo del sistema. Normalmente prefiero las herramientas de línea de comandos (aunque ciertamente estoy mucho más cómodo en una línea de comandos de Linux que Windows), pero en este caso, encontré que la interfaz gráfica de usuario de Resource Monitor sugerida por @bcorso es mucho más útil.

@sebastian_t Para el proceso del sistema (PID 4) hay netsh http show urlacl . Muestra las reservas de URL del sistema.

use | grep :80 es útil para buscar puertos específicos. si está instalado grep .

netstat -a -b desbordó toda la pantalla cmd. No pude encontrar el pid que estaba buscando antes de que desapareciera. Lo que necesitaba era una forma de encontrar el puerto de un proceso específico usando pid.

El código de PowerShell no funciona realmente, obtengo este error: Get-NetTCPConnection: No se puede procesar la transformación de argumentos en el parámetro 'LocalPort'. No se puede convertir el valor "portNumber" para escribir "System.UInt16 []". Error: "No se puede convertir el valor" portNumber "para escribir" System.UInt16 ". Error:" La cadena de entrada no tenía el formato correcto ".

Esto no funciona en PS3.0: ¿por qué la gente de Windows ya no enumera versiones? ¿Para qué versión de powershell están esos comandos?

@RodionSychev El comando powershell espera que reemplace "portNumber" con el número de puerto que está buscando. El error indica que "portNumber" no es un número.

Avatar aku

Para Windows:

netstat -aon | find /i "listening"
 

+1 Pero tenga en cuenta que si su ventana se ejecuta en un idioma que no sea inglés, tendrá que cambiar "escuchar" al término nativo. P.ej. netstat -aon | find /i "abhören" para alemán.

En mi caso no funcionó tal vez por el signo de comillas, pero la solución netstat -aon | Findstr LISTENING funciona perfectamente!

Esto funciona sin requerir privilegios elevados tan votados.

Recibo un error al intentar ejecutar este comando en W10 15063.729 con PowerShell: FIND: Parameter format not correct

¿Cómo es relevante esta respuesta para "averiguar qué proceso [nombre] está escuchando en un puerto en Windows?"

Avatar joe

Use // i en lugar de / i si usa git bash en windows

Use TCPView si desea una GUI para esto. Es la vieja aplicación Sysinternals que Microsoft compró.

Esta es, según mi opinión, la mejor opción, especialmente porque todos los procesos están en la misma lista y puedes cerrar los procesos directamente haciendo clic derecho sobre ellos.

Además, ¡esto no requiere privilegios de administrador!

Si desea utilizar una herramienta GUI para hacer esto, hay Sysinternals 'TCPView .

  1. Abra una ventana de símbolo del sistema (como Administrador) Desde "Inicio \ Cuadro de búsqueda" Ingrese "cmd", luego haga clic derecho en "cmd.exe" y seleccione "Ejecutar como administrador"

  2. Ingrese el siguiente texto y luego presione Enter.

    netstat -abno

    -a Muestra todas las conexiones y puertos de escucha.

    -b Muestra el ejecutable involucrado en la creación de cada conexión o             puerto de escucha En algunos casos, ejecutables conocidos host             múltiples componentes independientes, y en estos casos la             secuencia de componentes involucrados en la creación de la conexión             o se muestra el puerto de escucha. En este caso el ejecutable             el nombre está en [] en la parte inferior, en la parte superior está el componente al que llamó,             y así sucesivamente hasta que se alcanzó TCP / IP. Tenga en cuenta que esta opción             puede llevar mucho tiempo y fallará a menos que tenga suficiente             permisos.

    -n Muestra direcciones y números de puerto en forma numérica.

    -o Muestra el ID del proceso propietario asociado con cada conexión.

  3. Encuentra el puerto que estás escuchando en "Dirección local"

  4. Mira el nombre del proceso directamente debajo de eso.

NOTA: Para buscar el proceso en el Administrador de tareas

  1. Tenga en cuenta el PID (identificador de proceso) junto al puerto que está viendo.

  2. Abra el Administrador de tareas de Windows.

  3. Seleccione la pestaña Procesos.

  4. Busque el PID que anotó cuando realizó el netstat en el paso 1.

    • Si no ve una columna PID, haga clic en Ver / Seleccionar columnas. Seleccione PID.

    • Asegúrese de que esté seleccionada la opción "Mostrar procesos de todos los usuarios".

Siga estas herramientas: desde cmd : C:\> netstat -anob con privilegios de Administrador .

Explorador de procesos

Volcado de proceso

Port Monitor

Todo de sysinternals.com.

Si solo desea conocer el proceso en ejecución y los subprocesos en cada proceso, le recomiendo obtener información sobre wmic . Es una maravillosa herramienta de línea de comandos, que le brinda mucho más de lo que puede saber.

Ejemplo:

c:\> wmic process list brief /every:5
 

El comando anterior mostrará una lista de todos los procesos en breve cada 5 segundos. Para saber más, simplemente puede ir con el comando /? de Windows, por ejemplo,

c:\> wmic /?
c:\> wmic process /?
c:\> wmic prcess list /?
 

Y así sucesivamente. :)

Uso:

netstat -a -o
 

Esto muestra el PID del proceso que se ejecuta en un puerto en particular.

Tenga en cuenta la ID del proceso y vaya al Administrador de tareas y la pestaña de servicios o detalles y finalice el proceso que tiene el mismo PID.

Por lo tanto, puede eliminar un proceso que se ejecuta en un puerto en particular en Windows.

Puede obtener más información si ejecuta el siguiente comando:

netstat -aon | find /i "listening" |find "port"
 

usando el comando 'Buscar' le permite filtrar los resultados. find /i "listening" mostrará solo los puertos que están 'Escuchando'. Tenga en cuenta que necesita /i para ignorar mayúsculas y minúsculas; de lo contrario, escriba find "LISTENING". | find "port" limitará los resultados solo a aquellos que contengan el número de puerto específico. Tenga en cuenta que en esto también filtrará los resultados que tengan el número de puerto en cualquier lugar de la cadena de respuesta.

FWIW que intenta ejecutar esto en PowerShell v2.0 produce el error FIND: Parameter format not correct . Debe agregar un espacio después de los criterios de búsqueda. Esto te dejará con netstat -aon | find /i "listening" | find "1234 " .

Reemplace "puerto" arriba con su puerto, ex "5000"

@yo. Todavía recibo ese error con PS 5.1, incluso después de agregar el espacio después de la tubería. ¿Sabes lo que pasa?

@NickeManarinin & @self cambian primero de powershell a cmd (simplemente escriba cmd y presione enter y luego vuelva a hacer el comando) o en powershell use este comando en su lugar: netstat -aon | find / i "{back tick} " listening {back tick} "" | find "{back tick} " port {back tick} "" (<- tenga en cuenta las comillas escapadas - disculpe el término back tick porque no puedo agrega el personaje real ya que cree que es un recorte

netstat -ao y netstat -ab le indican la aplicación, pero si no es administrador del sistema obtendrá "La operación solicitada requiere elevación".

No es lo ideal, pero si usa Sysinternals ' Process Explorer puede ir a la sección específica procesa las propiedades y mira la pestaña TCP para ver si están usando el puerto que te interesa. Es un poco una cosa de aguja y pajar, pero tal vez ayude a alguien ...

Si no es administrador, no podrá usar Process Explorer (o incluso Windows Task Manager> Resource Manager) para obtener esta información de cualquier proceso que no sea suyo para empezar.

Para obtener una lista de todas las ID de proceso propias asociadas con cada conexión:

netstat -ao |find /i "listening"
 

Si quiere matar algún proceso, tenga la ID y use este comando, para que el puerto quede libre

Taskkill /F /IM PID of a process
 

esto no tiene en cuenta la escucha de puertos UDP

Hay una GUI nativa para Windows:

  • Menú Inicio → Todos los programas Accesorios Herramientas del sistema Monitor de recursos

O Ejecutar resmon.exe , o desde la pestaña de rendimiento del Administrador de tareas .

Ingrese la descripción de la imagen aquí

También muestra el estado del firewall del enlace (última columna). Muy util.

Debe ser administrador (o en ese grupo) para ejecutar esto.

@bcorso, ¿qué significa vincular a " dirección no especificada "?

También se puede iniciar desde la pestaña Rendimiento del Administrador de tareas, al menos en Windows 10. (No he verificado otras versiones).

Avatar RBT

También puede iniciar el monitoreo de recursos desde la pestaña de rendimiento del Administrador de tareas haciendo clic en el botón Open Resource Monitor . Desde el comando de ejecución, el comando perfmon /res también funciona para abrir el monitor de recursos.

El comentario de @ user4836454 anterior NO es correcto: el Monitor de recursos muestra puertos con escuchas, incluso si no hay conexión de red a estos puertos. Simplemente mire la sección "Puertos de escucha" en lugar de la sección "Conexiones TCP".

Esto parece omitir algunos de los puertos TCP que se usan a veces, incluso si se usan en la medida en que otras aplicaciones que los necesitan no puedan iniciarse.

Por alguna razón, el pid que estaba buscando no figuraba en el monitor de recursos. Tuve que ejecutar el comando netstat eventualmente.

@Pacerier Una sola interfaz Ethernet puede tener múltiples direcciones IP asignadas (generalmente en servidores). 'Sin especificar' significa que está escuchando en el puerto en cualquier dirección que use el servidor. Lo contrario sería mostrar las direcciones IP a las que responderá el programa.

Primero encontramos la identificación del proceso de esa tarea en particular que debemos eliminar para liberar el puerto:

Tipo

netstat -n -a -o
 

Después de ejecutar este comando en la línea de comandos de Windows (cmd), seleccione el pid que creo que es la última columna. Supongamos que esto es 3312.

Ahora escriba

taskkill /F /PID 3312
 

Ahora puede realizar una verificación cruzada escribiendo el comando netstat .

NOTA: a veces Windows no le permite ejecutar este comando directamente en CMD, por lo que primero debe seguir estos pasos:

Desde el menú de inicio -> símbolo del sistema (haga clic derecho en el símbolo del sistema y ejecútelo como administrador)

Recomiendo CurrPorts de NirSoft.

CurrPorts puede filtrar los resultados mostrados. TCPView no tiene esta función.

Nota: puede hacer clic con el botón derecho en la conexión de socket de un proceso y seleccionar "Cerrar conexiones TCP seleccionadas" (también puede hacerlo en TCPView). Esto a menudo soluciona los problemas de conectividad que tengo con Outlook y Lync después de cambiar las VPN. Con CurrPorts, también puede cerrar conexiones desde la línea de comandos con el parámetro "/ close".

Obtener PID y nombre de imagen

Use solo un comando:

for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"
 

donde 9000 debe reemplazarse por su número de puerto.

La salida contendrá algo como esto:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
java.exe                      5312 Services                   0    130,768 K
 

Explicación :

  • itera a través de cada línea desde la salida del siguiente comando:

    netstat -aon | findstr 9000
    
  • de cada línea, se extrae el PID (%a - el nombre no es importante aquí) (PID es el elemento 5 th en esa línea) y pasó al siguiente comando

    tasklist /FI "PID eq 5312"
    

Si desea omitir el encabezado y la devolución del símbolo del sistema , puede usar:

echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on
 

Salida :

java.exe                      5312 Services                   0    130,768 K
 

Buena respuesta, pero debe cambiarlo a findstr :9000 si no, incluso encontrará aplicaciones que contengan el número (por ejemplo, cuando busque "80", también encontrará aplicaciones en los puertos 80, 800, 8000).

Es muy simple obtener el número de puerto de un PID en Windows.

Los siguientes son los pasos:

  1. Vaya a ejecutar → escriba cmd → presione Enter.

  2. Escribe el siguiente comando ...

    netstat -aon | findstr [port number]
     

    (Nota: no incluya corchetes).

  3. Presione Enter...

  4. Entonces cmd le dará los detalles del servicio que se ejecuta en ese puerto junto con el PID.

  5. Abra el Administrador de tareas y presione la pestaña de servicio y haga coincidir el PID con el del cmd, y eso es todo.

Para aquellos que usan PowerShell, intente Get-NetworkStatistics :

> Get-NetworkStatistics | where Localport -eq 8000


ComputerName  : DESKTOP-JL59SC6
Protocol      : TCP
LocalAddress  : 0.0.0.0
LocalPort     : 8000
RemoteAddress : 0.0.0.0
RemotePort    : 0
State         : LISTENING
ProcessName   : node
PID           : 11552
 

Con PowerShell 5 en Windows 10 o Windows Server 2016, ejecute Get-NetTCPConnection cmdlet. Supongo que también debería funcionar en versiones anteriores de Windows.

La salida predeterminada de no incluye ID de proceso por alguna razón y es un poco confuso. Sin embargo, siempre puede obtenerlo formateando la salida. La propiedad que está buscando es Get-NetTCPConnection .

  • Si desea averiguar la ID del proceso que está escuchando en el puerto 443, ejecute este comando:

    OwningProcess
  • Formatee el resultado en una tabla con las propiedades que busca:

    PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-List
    
    LocalAddress   : ::
    LocalPort      : 443
    RemoteAddress  : ::
    RemotePort     : 0
    State          : Listen
    AppliedSetting :
    OwningProcess  : 4572
    CreationTime   : 02.11.2016 21:55:43
    OffloadState   : InHost
    
  • Si desea averiguar un nombre del proceso, ejecute este comando:

    PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-Table -Property LocalAddress, LocalPort, State, OwningProcess
    
    LocalAddress LocalPort  State OwningProcess
    ------------ ---------  ----- -------------
    ::                 443 Listen          4572
    0.0.0.0            443 Listen          4572
    
    PS C:\> Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 143 15 3448 11024 4572 0 VisualSVNServer

Escriba el comando: netstat -aon | findstr :DESIRED_PORT_NUMBER

Por ejemplo, si quiero encontrar el puerto 80: netstat -aon | findstr :80

Esta respuesta se publicó originalmente en esta pregunta .

Para Windows, si desea encontrar cosas escuchadas o conectadas al puerto 1234, ejecute lo siguiente en el indicador de cmd:

netstat -na | find "1234"
 

Simplemente abra un shell de comandos y escriba (diciendo que su puerto es 123456):

netstat -a -n -o | find "123456"
 

Verá todo lo que necesita.

Los encabezados son:

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:37             0.0.0.0:0              LISTENING       1111
 

Esto es como se menciona aquí .

FYI / para cualquier persona interesada: es findstr 123456 (sin comillas) o find "123456" (con comillas). (@Josh)

Uso de PowerShell ... ... este sería su amigo (reemplace 8080 con su número de puerto):

 netstat -abno | Select-String -Context 0,1 -Pattern 8080
 

Salida de muestra

>   TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING         2920
   [tnslsnr.exe]
>   TCP    [::]:8080              [::]:0                 LISTENING         2920
   [tnslsnr.exe]
 

Entonces, en este ejemplo, tnslsnr.exe (base de datos OracleXE) está escuchando en el puerto 8080.

Explicación rápida

  • Select-String se utiliza para filtrar la salida larga de netstat para las líneas relevantes.
  • -Pattern prueba cada línea contra una expresión regular.
  • -Context 0,1 generará 0 líneas iniciales y 1 línea posterior para cada coincidencia de patrón.

El modificador -b mencionado en la mayoría de las respuestas requiere que tenga privilegios administrativos en la máquina. ¡Realmente no necesita derechos elevados para obtener el nombre del proceso!

Encuentre el pid del proceso que se ejecuta en el número de puerto (por ejemplo, 8080)

netstat -ano | findStr "8080"
 

Encuentre el nombre del proceso pid

tasklist /fi "pid eq 2216"
 

 proceso de búsqueda por puerto TCP / IP

Utilice el siguiente script por lotes que toma el nombre de un proceso como argumento y proporciona la salida netstat para el proceso.

@echo off
set procName=%1
for /f "tokens=2 delims=," %%F in ('tasklist /nh /fi "imagename eq %1" /fo csv') do call :Foo %%~F
goto End

:Foo
set z=%1
echo netstat for : "%procName%" which had pid "%1"
echo ----------------------------------------------------------------------

netstat -ano |findstr %z%
goto :eof

:End
 

Netstat:

  • -a muestra todos los puertos de conexión y escucha
  • -b muestra ejecutables
  • -n detener resolver nombres de host (forma numérica)
  • -o proceso de propiedad

    netstat -bano | findstr "7002"
    
    netstat -ano > ano.txt 
    

La herramienta Currports ayuda a buscar y filtrar

Programáticamente, necesita cosas de iphlpapi.h , por ejemplo GetTcpTable2 (). Estructuras como MIB_TCP6ROW2 contienen el PID del propietario .

Para averiguar qué proceso específico (PID) está utilizando qué puerto:

netstat -anon | findstr 1234
 

Donde 1234 es el PID de su proceso. [Vaya a la pestaña Administrador de tareas → Servicios / Procesos para averiguar el PID de su aplicación.]

Cabe señalar que no necesita el indicador -n establecido dos veces. -ano es suficiente.

Una solución de una sola línea que me ayuda es esta. Simplemente sustituya 3000 con su puerto:

$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; Stop-Process $P.Id
 

Editar: se cambió kill a Stop-Process para obtener más lenguaje similar a PowerShell

Probablemente no quieras matar el proceso automáticamente. Separaría ese comando de matar y lo explicaría. No quiero que un usuario pobre copie y pegue eso sin pensarlo detenidamente.

Y si va por la solución completa de PowerShell, cambie kill a Stop-Process Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess | Stop-Process

  1. Abra el símbolo del sistema: inicio → Ejecutar cmd , o menú de inicio → Todos los programas Accesorios Símbolo del sistema .

  2. Tipo

    netstat -aon | findstr '[port_number]'
    

Reemplace el [port_number] con el número de puerto real que desea verificar y presione Enter .

  1. Si alguna aplicación está utilizando el puerto, se mostrarán los detalles de esa aplicación. El número, que se muestra en la última columna de la lista, es el PID (ID de proceso) de esa aplicación. Tome nota de esto.
  2. Tipo

    tasklist | findstr '[PID]'
    

Reemplace el [PID] con el número del paso anterior y presione Enter .

  1. Se le mostrará el nombre de la aplicación que usa su número de puerto.

En Win 10: su comando en el paso 2 y el paso 4 no funciona a menos que reemplace comillas simples por comillas dobles. Debería decir netstat -aon | findtr "[número_puerto]"

Basado en respuestas con info y kill , para mí es útil combinarlos en un comando . Y puede ejecutar esto desde cmd para obtener información sobre el proceso que escucha en un puerto determinado (ejemplo 8080):

for /f "tokens=3 delims=LISTENING" %i  in ('netstat -ano ^| findStr "8080" ^| findStr "["') do tasklist /fi "pid eq %i"
 

O si quieres matarlo:

for /f "tokens=3 delims=LISTENING" %i  in ('netstat -ano ^| findStr "8080" ^| findStr "["') do Taskkill /F /IM %i
 

También puede poner esos comandos en un archivo bat (serán ligeramente diferentes; reemplace %i por %%i ):

Archivo portInfo.bat

for /f "tokens=3 delims=LISTENING" %%i  in (
    'netstat -ano ^| findStr "%1" ^| findStr "["'
) do (
    tasklist /fi "pid eq %%i"
)
 

Archivo portKill.bat

for /f "tokens=3 delims=LISTENING" %%i  in (
    'netstat -ano ^| findStr "%1" ^| findStr "["'
) do (
    Taskkill /F /IM %%i
)
 

Entonces desde cmd puedes hacer esto:

portInfo.bat 8080

o

portKill.bat 8080

Este podría ser un script útil. Sin embargo, lo probé en CMD y en PowerShell 6 sin suerte. Quizás podría mejorar su respuesta al proporcionar un poco más de detalles.

¿Funciona la primera parte? ¿Es solo un problema con el "murciélago"? Existen algunas diferencias en las variables de paso: (%% i)

@Manfred He intentado esto en 3 Windows 10 diferentes. Por ejemplo, .\portInfo.bat 800 en PowerShell da algo como esto: C:\work>for /F "tokens=3 delims=LISTENING" %i in ('netstat -ano | findStr "800" | findStr "["') do (tasklist /fi "pid eq %i" ) C:\work>(tasklist /fi "pid eq 4" ) Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ System 4 Services 0 1,820 K

Lo siento, no tuve suerte. Puse ese comando en un archivo llamado portInfo.bat en un terminal powershell, luego ejecuté .\portInfo.bat 8080 . El resultado fue solo el contenido del archivo por lotes. Muy bien, estoy pasando por alto algo. Tenga en cuenta que estoy usando PowerShell 6.2.3 en Windows 10. También lo probé en un símbolo del sistema normal, pero el resultado fue el mismo: salida del contenido del script. Estoy seguro de que me falta una información crucial para que esto funcione.

@Manfred El contenido del archivo debe imprimirse, como lo mostré en el commit anterior. Tal vez no había nada en el puerto 8080. ¿Intentó el primer comando? ¿Y devolvió algo para este puerto? for /f "tokens=3 delims=LISTENING" %i in ('netstat -ano ^| findStr "8080" ^| findStr "["') do tasklist /fi "pid eq %i"