How do I disable Microsoft Tracelog?

Detener Trazas en CMD: Guía Completa

hace 2 años

Valoración: 4.5 (885 votos)

En el mundo de la administración de sistemas Windows, el seguimiento y análisis de eventos a través de trazas es una herramienta fundamental para diagnosticar problemas, optimizar el rendimiento y entender el comportamiento interno del sistema y las aplicaciones. Sin embargo, tan importante como iniciar una sesión de trazado, es saber cómo detenerla correctamente una vez que se ha recopilado la información necesaria. Dejar sesiones de trazado activas innecesariamente puede consumir recursos del sistema y generar registros extensos que dificulten el análisis posterior. En este artículo, exploraremos en detalle cómo detener una traza en el Símbolo del Sistema (CMD), utilizando las herramientas TraceView y Tracelog, proporcionando una guía completa para que puedas gestionar tus sesiones de trazado de manera eficiente.

How do I stop a trace in Command Prompt?
TraceView can stop only the trace sessions that it started. To stop other trace sessions, use a traceview -stopSessionName command. For more information about this command, see TraceView Control Commands. Dec 15, 2021
Índice de Contenido

Deteniendo Sesiones de Traza con TraceView

TraceView es una herramienta gráfica que facilita la gestión de sesiones de trazado en Windows. Si has iniciado una sesión de traza utilizando TraceView, detenerla es un proceso sencillo e intuitivo. Sigue estos pasos:

  1. Ubica la Sesión de Traza: En la ventana principal de TraceView, localiza la lista de sesiones de traza activas, conocida como "Trace Session List".
  2. Selecciona la Sesión: Dentro de la lista, identifica la sesión de traza que deseas detener. Cada sesión se representa en una fila.
  3. Detén la Traza: Haz clic derecho en cualquier celda de la fila correspondiente a la sesión de traza seleccionada. En el menú contextual que aparece, elige la opción "Stop Trace".

Después de ejecutar esta acción, observarás un breve cambio en la columna "State" de la sesión en la lista. Inicialmente, el estado cambiará de "RUNNING" (Ejecutando) a "STOPPING" (Deteniendo) y finalmente a "STOPPED" (Detenida). Una vez que la sesión de traza se encuentre en estado "STOPPED", podrás, si lo deseas, eliminarla de la visualización en TraceView.

Es importante tener en cuenta que TraceView solo puede detener las sesiones de traza que han sido iniciadas por la propia herramienta. Si necesitas detener sesiones de traza iniciadas por otros métodos, como la línea de comandos con Tracelog, deberás utilizar comandos específicos, como veremos a continuación.

La acción de detener una sesión de traza con TraceView implica varias operaciones internas. Primero, deshabilita los proveedores de traza asociados a la sesión, impidiendo que continúen generando mensajes de traza. Luego, vacía los buffers de traza, asegurando que todos los mensajes de traza pendientes se escriban en la pantalla de TraceView y en los archivos de registro de traza (si se configuraron). Finalmente, detiene formalmente la sesión de traza, liberando los recursos del sistema que estaba utilizando.

Es fundamental entender que detener una sesión de traza no elimina la sesión de la lista de visualización de TraceView ni borra los archivos de registro de traza que se hayan generado. Estos archivos pueden ser analizados posteriormente para examinar los eventos capturados durante la sesión.

How do I stop a trace in Command Prompt?
TraceView can stop only the trace sessions that it started. To stop other trace sessions, use a traceview -stopSessionName command. For more information about this command, see TraceView Control Commands. Dec 15, 2021

Internamente, TraceView utiliza la función EnableTrace del sistema operativo Windows para detener las sesiones de traza. Esta función es parte de la API de Event Tracing for Windows (ETW), el subsistema de trazado de eventos de Windows. Para obtener información más detallada sobre la función EnableTrace, puedes consultar la documentación del SDK de Microsoft Windows.

Deteniendo Sesiones de Traza con Tracelog

Tracelog es una herramienta de línea de comandos que ofrece un control más preciso sobre las sesiones de traza. Es especialmente útil para escenarios donde se requiere automatización o gestión de trazas desde scripts. Para detener una sesión de traza utilizando Tracelog, puedes emplear el comando tracelog -stop seguido del nombre de la sesión de traza que deseas finalizar.

La sintaxis básica del comando es:

tracelog -stop [NombreSesión]

Donde [NombreSesión] es el nombre que se le asignó a la sesión de traza al iniciarla. Si no se especifica un nombre de sesión, Tracelog asume que se desea detener la sesión de traza del NT Kernel Logger, que es una sesión especial para trazas del kernel del sistema.

Por ejemplo, si iniciaste una sesión de traza con el nombre "MiSesionDeTraza", el comando para detenerla sería:

tracelog -stop MiSesionDeTraza

Si deseas detener la sesión de traza del NT Kernel Logger, puedes usar cualquiera de los siguientes comandos:

tracelog -stop "NT Kernel Logger"
tracelog -stop GlobalLogger

Ambos comandos son equivalentes para detener la sesión de traza del kernel. Es importante notar que al detener la sesión de traza del Global Logger (NT Kernel Logger) utilizando estos comandos, Tracelog detiene el proveedor de traza, pero no restablece los valores de las entradas del registro asociadas a la sesión. Si deseas restablecer estas entradas del registro, puedes utilizar el comando tracelog -remove, que se describe más adelante.

How to close session in command line?
Step-by-Step Guide to Kill User Session Windows Command Line Click Win + R, type cmd, & press Enter to open the Command Prompt. Use the query user command to list all user sessions. Note the session ID of the user session you want to terminate. Use the logoff command with the session ID obtained from the previous step.

Al igual que TraceView, el comando tracelog -stop realiza las siguientes acciones: deshabilita los proveedores de traza de la sesión especificada y, a continuación, termina la sesión de traza. Es importante diferenciar este comando del comando tracelog -disable, que solo deshabilita los proveedores de traza, pero no detiene la sesión en sí. El comando tracelog -disable es útil si deseas detener temporalmente la generación de mensajes de traza por parte de los proveedores, pero quieres mantener la sesión activa para, por ejemplo, habilitar nuevamente los proveedores más tarde o realizar otras operaciones sobre la sesión.

En versiones anteriores de Tracelog, existía el comando tracelog -x para detener todas las sesiones de traza. Sin embargo, este comando ha sido eliminado en versiones más recientes debido a que detener todas las sesiones de traza indiscriminadamente podría causar inestabilidad en el sistema. Por lo tanto, es recomendable detener las sesiones de traza de forma individual, especificando el nombre de la sesión que se desea finalizar.

Comandos Útiles de Tracelog Relacionados con la Detención de Trazas

Además del comando tracelog -stop, existen otros comandos de Tracelog que pueden ser útiles en el contexto de la detención y gestión de sesiones de traza:

  • tracelog -disable [NombreSesión]: Deshabilita los proveedores de traza especificados para la sesión de traza [NombreSesión]. A diferencia de -stop, este comando no detiene la sesión, solo impide que los proveedores envíen más mensajes.
  • tracelog -flush [NombreSesión]: Vacía los buffers activos de la sesión de traza [NombreSesión]. Esto fuerza a que los eventos en los buffers se envíen inmediatamente al registro de traza o al consumidor en tiempo real. Es útil para asegurar que todos los eventos se registren antes de detener la sesión.
  • tracelog -remove GlobalLogger: Elimina y reinicializa los valores de registro para una sesión de traza Global Logger. Establece el valor de la entrada "Start" a 0 (no iniciar) y elimina las demás entradas de registro. Este comando es específico para sesiones Global Logger y evita que la sesión se inicie automáticamente en el próximo reinicio del sistema.

Tabla Comparativa: TraceView vs. Tracelog para Detener Trazas

CaracterísticaTraceViewTracelog
InterfazGráficaLínea de comandos
Facilidad de uso para detener trazasMuy fácil (clic derecho, "Stop Trace")Requiere conocer el comando tracelog -stop y el nombre de la sesión
Control avanzadoMenos control avanzado directamente para detener, más enfocado en la visualizaciónMayor control a través de comandos y opciones adicionales (-disable, -flush, -remove)
AutomatizaciónMenos adecuado para automatización directaIdeal para automatización y scripts
Capacidad para detener sesiones iniciadas externamenteLimitada a sesiones iniciadas por TraceViewPuede detener sesiones iniciadas por Tracelog u otros métodos

Preguntas Frecuentes (FAQ)

  1. ¿Qué sucede si no detengo una sesión de traza?

    Si no detienes una sesión de traza, continuará ejecutándose en segundo plano, consumiendo recursos del sistema (CPU, memoria, espacio en disco para registros) y generando potencialmente grandes cantidades de datos de traza innecesarios. Es recomendable detener las sesiones de traza una vez que hayas terminado de recopilar la información que necesitas.

  2. ¿Puedo detener una sesión de traza iniciada por otro usuario o proceso?

    Generalmente, necesitas permisos de administrador para detener sesiones de traza que no hayas iniciado tú. En el caso de TraceView, solo puede detener las sesiones que ha iniciado. Tracelog, con los permisos adecuados, puede detener sesiones iniciadas por otros métodos.

    How to disconnect remote session from command line?
    The logoff command is a simple way to disconnect an RDP session from the command line. To use it, open the Command Prompt or PowerShell and type: logoff /server: Replace with the ID of the session you want to disconnect.
  3. ¿Es necesario deshabilitar los proveedores de traza antes de detener la sesión?

    No es estrictamente necesario. El comando tracelog -stop (y la opción "Stop Trace" en TraceView) realiza ambas acciones: primero deshabilita los proveedores y luego detiene la sesión. Sin embargo, puedes usar tracelog -disable si solo deseas deshabilitar temporalmente los proveedores sin detener la sesión.

  4. ¿Cómo puedo verificar si una sesión de traza se ha detenido correctamente?

    En TraceView, puedes verificar el estado de la sesión en la columna "State" de la lista de sesiones. En Tracelog, puedes usar el comando tracelog -q [NombreSesión] para consultar las propiedades de la sesión y verificar su estado. También puedes usar tracelog -l para listar todas las sesiones activas y verificar que la sesión que detuviste ya no aparezca en la lista.

  5. ¿Perderé los datos de traza si detengo la sesión?

    No, al detener una sesión de traza correctamente, los datos de traza que se hayan recopilado hasta ese momento y que estén en los buffers se vaciarán y se escribirán en los archivos de registro (si se configuraron) o se mostrarán en el consumidor en tiempo real. No se perderán datos al detener la sesión, siempre que se haga de manera adecuada.

Conclusión

Saber cómo detener una traza en el Símbolo del Sistema es esencial para una gestión eficiente de las sesiones de trazado en Windows. Tanto TraceView como Tracelog ofrecen mecanismos para finalizar las sesiones, cada uno con sus propias ventajas y escenarios de uso. TraceView proporciona una interfaz gráfica intuitiva para detener trazas de forma sencilla, mientras que Tracelog ofrece un control más preciso y es ideal para automatización y gestión desde la línea de comandos. Comprender las diferencias entre estas herramientas y los comandos disponibles te permitirá gestionar tus sesiones de trazado de manera efectiva, optimizando el rendimiento del sistema y facilitando el análisis de eventos para la resolución de problemas y la mejora del rendimiento.

Subir