PowerShell: cómo crear registros para sus scripts de PowerShell
¿Ya has creado tus primeros scripts de PowrShell? ¿Ahora desea mejorar estos scripts con el registro de errores? Si tu respuesta es sí, salta a este artículo. Le mostraré cómo implementar una función personalizada que captura los errores y los escribe en un archivo de registro de errores. Empecemos.
Código de muestra
Aquí está el ejemplo de código sobre el que puede desarrollar. Más adelante explicaré los bloques individuales con más detalle.
# Create Log File
$LogFile = "$home\error.log"
Clear-Content $LogFile -ErrorAction SilentlyContinue
# Create Custom Function for further operations
Function Log-Write
{
Param ($Text)
Add-Content $LogFile -Value $Text
}
<#
Sample script
Search for Folders.
If not present write them into log file and create Event Log entry.
#>
$folders = 'C:\quaxi','C:\temp','C:\'
foreach ($item in $folders) {
Try
{
Get-ChildItem -Path $item -ErrorAction Stop | Out-Null
}
Catch
{
Log-Write -Text "$item is not present."
Write-EventLog -LogName Application -Source "EventSystem" `
-EventId 3001 -EntryType Error -Message "$item is not present."
}
}
# Check if it worked (Open Log File + Search Event Log)
Start-Process $LogFile
Get-EventLog -LogName Application -InstanceId 3001 |
Select-Object TimeGenerated,EntryType,Message |
Format-Table -AutoSize -Wrap
Aquí está la explicación.
Línea 1 - 4 crea un archivo de registro. También borra el contenido de los archivos de registro generados previamente.
Línea 6 - 12 genera una función personalizada llamada Log-Write.
La línea 14 - 33 realiza una prueba. El bucle foreach busca carpetas. Si no están presentes, el bloque catch los capturará y los escribirá en el archivo de registro utilizando la función Log-Write. El bloque catch también creará una entrada en el registro de eventos con el ID 3001.
La línea 37 - 40 es solo para fines de prueba. Abrirá el archivo de registro y buscará en el registro de eventos el ID de envent 3001.
Se verá así.
Espero que hayas disfrutado este artículo. Nos vemos la próxima vez.
