Administrar procesos desde la línea de comandos de Windows 8.1

Publicado por P. Ruiz en

Muchos usuarios se resisten a utilizar la línea de comandos de Windows. Sin embargo, en muchas ocasiones se trata de un medio muy eficaz de obtener la información que vamos buscando sin someternos a los rodeos típicos de la interfaz gráfica. El artículo de hoy es un claro ejemplo de esto: Comprobaremos lo sencillo que resulta obtener la lista de procesos y servicios que se están ejecutando en un ordenador con Windows 8.1 y, además, aprenderemos a detenerlos de una forma muy sencilla.

Para conseguirlo, aprenderemos el uso básico de dos comandos del modo texto: tasklist y taskkill.

Lo primero será hacer clic, con el botón derecho del ratón sobre el botón Inicio.

1

Después, en el menú de contexto que aparece, elegimos Ejecutar.

Así conseguimos que aparezca el cuadro de diálogo Ejecutar. En él, hacemos clic sobre el cuadro de texto Abrir y escribimos la siguiente orden:

cmd

2

Cuando hayamos terminado, hacemos clic sobre el botón Aceptar.

De esta forma tan sencilla, habremos conseguido que aparezca la ventana de la línea de comandos, lista para que comencemos a escribir ordenes.

Uso del comando tasklist

Utilizando tasklist con la sintaxis más sencilla, además del nombre de cada programa que se esté ejecutando, podemos obtener su PID (identificador de proceso, en inglés Process ID), la sesión en la que se ha iniciado (Services para el sistema y Console para los usuarios), el número de sesiones en las que está iniciado y la cantidad de memoria que tiene asignada:

tasklist

1

Escribimos el comando y pulsamos la tecla Intro.

Si necesitamos información más detallada de cada proceso, podemos utilizar el argumento /V:

tasklist /v

2

Como la salida muestra muchos datos, hemos ampliado el tamaño de la ventana, para que se aprecie mejor.

En este caso, obtendremos también el estado, el nombre de usuario que lo ha iniciado, el tiempo de proceso y el título de la ventana donde se muestra, en caso de que exista.

A modo de ejemplo, una línea podría contener esta información:

  • Nombre de imagen: soffice.bin

  • PID: 2348

  • Nombre de sesión: Console

  • Núm. de ses: 1

  • Uso de memor: 93.864 KB

  • Estado: Running

  • Nombre de usuario: SOMEBOOKS\usuario

  • Tiempo de CP: 0:00:22

  • Título de ventana: Consejos.odt – OpenOffice Writer

Para comprobar los servicios que incluye cada uno de los procesos que se están ejecutando, podemos usar el argumento /svc:

tasklist /svc

3

El listado muestra la relación de servicios incluidos en cada proceso

Por otro lado, si lo que necesitamos es conocer, de entre todos los procesos que se están ejecutando, aquellos que hacen uso de una determinada librería de enlace dinámico (dll) o de un determinado programa ejecutable (exe), bastaría con utilizar el argumento /m. Por ejemplo, para saber qué programas utilizan la librería ntdll.dll, bastaría con escribir un comando como este:

tasklist /m ntdll.dll

4

Así descubrimos, por ejemplo, que el propio comando tasklist la utiliza.

Otra posibilidad consiste en filtrar la salida de tasklist según una condición. Esto lo conseguiremos con el argumento /fi. Así, si necesitamos conocer los procesos iniciados por la cuenta de usuario llamada, precisamente, usuario, bastaría con escribir un comando como este:

tasklist /fi "username eq usuario"

5

Hemos abierto el navegador web para que compruebes que se encuentra en el listado ofrecido por el comando.

Por supuesto, no es necesario utilizar los argumentos de uno en uno. Si lo preferimos, podemos combinarlos para obtener su información combinada. Por ejemplo, si queremos consultar la información anterior, pero de una forma más detallada, podemos añadir el argumento /v:

tasklist /v /fi "username eq usuario"

6

El listado anterior, pero con opciones detalladas.

Para obtener más información sobre el comando TaskList, puedes consultar esta página: https://technet.microsoft.com/es-es/library/bb491010.aspx

Uso del comando taskkill

Cuando necesitamos forzar la detención de un proceso que está ejecutándose, podemos recurrir al comando taskkill. Por ejemplo, partiendo del ejemplo mostrado en la imagen anterior, podríamos escribir la siguiente orden para detener el navegador:

taskkill /pid 2816

Observa que el PID que utilizamos coincide con el que aparece en el listado anterior.

1

Al pulsar la tecla Intro, el programa se cerrará.

Aunque, si prefieres utilizar el nombre del proceso en lugar de su PID, basta con emplear la siguiente sintaxis:

taskkill /im firefox.exe

2

Como cabía esperar, el resultado será el mismo.

En los dos casos anteriores, el comando trata de que se produzca un cierre ordenado del proceso, es decir, el sistema operativo le pide al proceso que ese cierre. De esta forma, si el proceso necesita guardar alguna información en disco o realizar cualquier otra tarea, le estaremos dando la oportunidad de que lo haga.

Sin embargo, en ocasiones, un proceso está funcionando de forma inadecuada y no atiende al requerimiento del sistema operativo. En estas situaciones, podemos recurrir al argumento /f, que forzará el cierre inmediato del proceso indicado:

taskkill /f /im firefox.exe

3

El proceso se cierra de forma forma inmediata.

Por último, puedes encontrarte en una situación en la que necesites que un proceso que presenta un mal funcionamiento se cierre, pero necesitarás abrirlo de forma inmediata. Estos casos pueden resolverse en una sola orden uniendo el comando taskkill con el comando start:

taskkill /f /im firefox.exe & start firefox.exe

4

El proceso se cierra y vuelve a abrirse de forma inmediata

Como siembre, espero que te resulte útil.

Para obtener más información sobre el comando TaskKill, puedes consultar esta página: https://technet.microsoft.com/es-es/library/bb491009.aspx

One more thing…

Si prefieres utilizar la interfaz gráfica, puedes consultar nuestro artículo Finalizar programas o servicios que no responden en Windows 8.1.

… Y, relacionado con el Administrador de tareas, también tenemos el artículo Comprobar el rendimiento del sistema en Windows 8.1.