Vamos a seguir hablando de cosillas del PowerShell de Windows y vamos a ver cómo podríamos ver el log de eventos de seguridad de Windows y como podríamos exportarlo a formato XML.
El comando Get-EventLog es, en este caso, el que nos permitirá extraer datos de los logs de eventos de Windows. Para filtrar los eventos de seguridad le pasaremos como parámetro -LogName, con el valor Security. Nos quedaría este comando:
Get-EventLog -LogName Security
Os dejo una captura de la salida del comando (si mi consola os luce un poco rara, podéis ver esta entrada sobre cómo personalizar la apariencia de la misma). Para mi ejemplo he llamado después al comando Select-Object especificando que se muestren solo las primeras 40 filas.

Bien, con esto tenemos la salida de datos en pantalla, pero lo que queremos es tener los datos en un fichero XML, un fichero al que llamaremos RegistroSeguridad.xml. ¿Cómo lo formatemos? Tenemos dos opciones:
- Usar el comando Convert-XML y dirigir la salida a un fichero con Out-File
- Usar el comando Export-Clixml, que en una sola acción hace lo mismo que los dos comandos comentados arriba.
El primer comando sería algo como esto (para no hacer un fichero demasiado descomunal he añadido que solo se cojan los primeros 400):
Get-EventLog -LogName Security | Select-Object -First 400 | ConverTo-XML | Out-File RegistroSeguridad.xml
El segundo comando sería así:
Get-EventLog -LogName Security | Select-Object -First 400 |Export-Clixml RegistroSeguridad.xml
¿Por qué es mejor que usemos la segunda opción? Pues porque además de tener una sintaxis más simplicada también obtiene un mejor rendimiento al usar una función que está diseñada específicamente para la conversión y exportación directa, en lugar de llamar a dos (una para conversión y otra para exportación).