Posteado por: Bladimir Santiago | abril 1, 2008

¿Qué es SVCHOST?

Algunos de los informáticos nos preguntamos que es SVCHOST y porque se está ejecutando en los procesos de Microsoft Windows XP en tu máquina con el nombre svchost.exe. No se lo puede detener y lógicamente, no se lo ha iniciado a dicho proceso, entonces, ¿Qué son éstos procesos? Aquí la respuesta…

¿Qué es svchost.exe?

Microsoft, la empresa generadora del Sistema Operativo XP, ha creado el proceso «svchost.exe, que es un nombre de proceso de host genérico para servicios que se ejecutan desde bibliotecas de vínculos dinámicos (DLL)»

Para las personas que desconocen del tema, hace algún tiempo atrás, 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.

Si además nos preguntamos el por qué hay tantos svchost.exe ejecutándose, alguna vez le hemos dado un vistazo a la sección de Servicios que hay en el panel de control, se nota 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 los tantos servicios que existen, 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 así sucesivamente.

Se puede deshabilitar los servicios innecesarios o aquellos que no son absolutamente imprescindibles que se ejecuten. Adicionalmente, si se nota un uso demasiado exagerado de la Unidad Central de Proceso (CPU) en una única instancia de svchost.exe, se puede reiniciar los servicios que se estén ejecutando en dicha instancia.

El mayor problema a la hora de hacer esto, está en saber identificar que servicios están en ejecución en una instancia en particular de svchost.exe.

Si se tiene curiosidad sobre esto que se está comentando, abrir el administrador de tareas y marcar la casilla «Mostrar procesos de todos los usuarios», luego aparecerá una ventana tal como se ve en la figura siguiente:

tareas.jpg

Se puede comprobar desde la línea de comandos los servicios que están siendo alojados por una instancia en particular de svchost.exe, se puede usar el comando tasklist desde la línea de comandos para poder ver una lista de los servicios en memoria, como se muestra en la siguiente figura:

tareasdos.jpg

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

También se puede usar Process Explorer de Microsoft/Sysinternals, es una manera más sencilla para ver qué servicios se están ejecutando como parte de un proceso svchost.exe.

Si dejamos el cursor del mouse (ratón) sobre uno de los procesos nos aparecerá una pequeña ventana con una lista de todos los servicios, tal como se ve en la figura siguiente:

process.jpg

O bien, podemos hacer doble clic sobre una instancia y seleccionar la pestaña Servicios en la ventana que nos aparecerá, donde además, podremos elegir detener los servicios que queremos, así como se muestra en la figura siguiente:

process2.jpg

Así mismo podemos deshabilitar servicios, abriendo primero en Servicios desde la opción herramientas administrativas del Panel de Control, o se escribe services.msc desde la opción ejecutar del Menú Inicio, luego se localiza el servicio que se quiere desactivar en dicha la lista y luego se da doble clic sobre el o clic derecho y propiedades, así como se ve en la figura siguiente:

servicios.jpg

Luego se cambia el tipo de inicio a Deshabilitado, y luego se da clic en el botón Detener para detener el proceso de inmediato, así como se ve en la siguiente figura:

sevicios2.jpg

También es posible usar la línea de comandos para desactivar un servicio, en donde desactivaremos el mismo servicio de la imagen de arriba “trkwks, con solo digitar lo siguiente: sc config trkwks start=disabled.

NOTA: Se pide de favor a personas que desconocen de conocimientos de informática no hacer éstos procesos.


Deja un comentario

Categorías