Encuentre qué de svchost está usando el puerto

Encuentre qué de svchost está usando el puerto

Seguí otra respuesta para encontrar el proceso que usa el puerto 8000 cuando inicio mi computadora.

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

Eso demuestra que svchostestá usando el puerto. Así que lo elimino sin problemas y ejecuto lo que quiero en el puerto 8000.

Pero, ¿hay alguna manera de ver qué svchostestá usando ese puerto, para poder evitar que se inicie?

Respuesta1

De forma predeterminada, cada svchostinstancia aloja (o utiliza para alojar) múltiples servicios. Puedes leer sobre esto.aquí. De esta manera no se puede determinar correctamente qué servicio es responsable de la actividad del proceso. Aún puedes ver qué servicios están alojados en el proceso en cuestión, usando PowerShell:

Get-WmiObject Win32_Service -Filter "ProcessId='$PID'"

Por ejemplo:

PS C:\> Get-WmiObject Win32_Service -Filter "ProcessId='1448'"

ExitCode  : 0
Name      : EFS
ProcessId : 1448
StartMode : Manual
State     : Running
Status    : OK

ExitCode  : 0
Name      : KeyIso
ProcessId : 1448
StartMode : Manual
State     : Running
Status    : OK

ExitCode  : 0
Name      : SamSs
ProcessId : 1448
StartMode : Auto
State     : Running
Status    : OK

ExitCode  : 0
Name      : VaultSvc
ProcessId : 1448
StartMode : Manual
State     : Running
Status    : OK

(Estos no están alojados en svchost, pero se entiende la idea).No siempre se puede saber qué servicios son desde la línea de comando del proceso.Debe utilizar la API de servicios para esto.

Puedes desactivar este multi-hosting por servicio, usando sc(conwuauserv, el servicio de actualización de Windows):

sc config wuauserv type= own

Luego puede verificar nuevamente y ver qué servicio es exactamente responsable.

También puedes volver a cambiar:

sc config wuauserv type= share

Respuesta2

El svchostproceso se utiliza para ejecutar servicios del sistema. Sería mejor averiguar qué servicio del sistema está utilizando este puerto y luego desactivarlo permanentemente (si no es útil).

Puede encontrarlo mirando la línea de comandos del svchost.exe proceso. El -kparámetro identifica el servicio del sistema.

Ya ha descubierto cómo obtener la identificación del proceso que usa el puerto. Para obtener la línea de comandos, ejecute PowerShell como administrador e ingrese el siguiente comando (ejemplo para el proceso 4680):

gcim win32_process | Where-Object {$_.processid -eq 4680} | select commandline

Una útil utilidad GUI es Explorador de procesos.

información relacionada