Juan Manuel 20 de marzo de 2008 a las 09.05
   Imprimir artículo
elWebmaster.com

SVCHOST: el misterio se está ejecutando en nuestra PC


Svchost.exe en Administrador de Tareas de WindowsEs típico que ante un “cuelgue” en Windows (¿Cómo? ¿un cuelgue? ¿cuándo? ^_^) ejecutemos el Administrador de tareas con el archiconocido Ctrl+Alt+Supr (o Del) y veamos desfilar por la pantalla toda una serie de procesos que no tenemos idea de qué son.

Muchas veces vemos el dichoso Svchost.exe, que encima se repite varias veces. ¿Por qué hay tantos? ¿Qué hay que hacer al respecto? ¿Es algo “bueno”, algo “malo” o qué? Todas estas preguntas tienen respuesta.

¿Que es Svchost.exe?

Según Microsoft: “svchost.exe es u nombre de proceso de host genérico para servicios que se ejecutan desde bibliotecas de vínculos dinámicos (DLL)”.

¿Y esto que significa?

Hace tiempo, Microsoft comenzó a migrar todas las funcionalidades de los servicios internos de Windows a archivos .dll en vez de archivos .exe. Desde el punto de vista de la programación esto tiene mucho sentido si pensamos en la reusabilidad… pero el problema es que no podemos lanzar un .dll directamente desde Windows, sino que tiene que ser cargado por un ejecutable (.exe). Así nació svchost.exe.

¿Por que hay tantos svchost.exe ejecutándose?

Si alguna vez le has echado un vistazo a la sección Servicios que hay en el panel de control habrás notado que hay un montón de servicios usados por Windows. Si cada uno de esos servicios corriera bajo una única instancia de svchost.exe, un fallo en uno de solo de estos servicios podría echar abajo todo el sistema… por eso se ejecuta en instancias separadas.
Estos servicios están organizados en grupos lógicos, y luego, una instancia de svchost.exe se crea para cada grupo. Por ejemplo, una única ejecución de svchost.exe carga los tres servicios relacionados con el firewall. Otra instancia de svchost.exe podría ejecutar todos los servicios relacionados con la interface de usuario, y asi sucesivamente.

¿Que puedo hacer al respecto?

Puedes deshabilitar servicios innecesarios o aquellos que no son absolutamente imprescindibles que se ejecuten. Adicionalmente, si notas un uso demasiado exagerado de la CPU en una única instancia de svchost.exe puedes reiniciar los servicios que se estén ejecutando en esa instancia.

El mayor problema a la hora de hacer esto es identificar que servicios esta ejecutando una instancia en particular de svchost.exe… aunque lo veremos un poco mas adelante.
Si tienes curiosidad sobre esto que estamos comentando, abre el administrador de tareas y marca la casilla “Mostrar procesos de todos los usuarios”.

SVCHOST en Administrador de Tareas de Windows

Comprobando desde la línea de comandos

Si quieres ver que servicios están siendo alojados por una instancia en particular de svchost.exe, puedes usar el comando tasklist desde la línea de comandos para poder ver una lista de los servicios en memoria.

tasklist /SVC

SVCHOST en Administrador de Tareas de Windows

Usar la línea de comandos solo tiene el inconveniente de que debes saber a que se refieren esos nombres tan crípticos.

Usando Process Explorer

Para facilitarnos la vida, podemos usar la utilidad Process Explorer de Microsoft/Sysinternals para ver qué servicios se están ejecutando como parte de un proceso svchost.exe.

Si dejamos el ratón sobre uno de los procesos nos aparecerá una pequeña ventana con una lista de todos los servicios:

SVCHOST en Administrador de Tareas de Windows

O bien, podemos hacer doble clic sobre una instancia y seleccionar la pestaña Services en la ventana que nos aparecerá, donde además, podremos elegir detener los servicios que queremos.

SVCHOST en Administrador de Tareas de Windows

Deshabilitando servicios

Abre Servicios desde la opción herramientas administrativas del Panel de Control, o escribe services.msc desde la opción ejecutar del Menú Inicio.

Localiza el servicio que quieres desactivar en la lista, y haz doble clic sobre el o clic derecho y propiedades.

SVCHOST en Administrador de Tareas de Windows

Cambia el tipo de inicio a Deshabilitado, y luego haz clic en el botón Detener para pararlo inmediatamente.

SVCHOST en Administrador de Tareas de Windows

También es posible usar la línea de comandos para desactivar un servicio. En este ejemplo desactivaremos el mismo servicio de la imagen de arriba, el servicio “trkwks”.

sc config trkwks start=disabled

Fuente: The How-to geek (traducción: LeeMiBLog).


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (3)

  1. Alejandro dice:

    Excelente este articulo… siempre me pregunté que eran ese proceso que se activaba… hasta pensé que podria ser un virus!!! jejej

  2. Gustavo dice:

    Por fin pude detener un proceso que dentro svchost que utilizaba muchas veces hasta el 100% del CPU, muy buen articulo

  3. Daniel dice:

    Muchas gracias por el articulo, simplemente excelente ahora se que servicio esta ejecutando un rpoceso y asi poder determinar cuales deshabilitar y cuales no.

    Mil gracias

    Larga vida a elwebmaster

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder