Olá pessoal,
Muitas vezes quando criamos algum script para automatizar uma rotina usando powershell, surge a necessidade de criar um log da execução. Particularmente acho interessante utilizar o event log nativo, no caso do Windows o Event Viewer, que permite centralizar os logs de diversas maneiras, como por exemplo Event Subscription ou utilizando uma ferramenta como o Log Analytics. Para criar uma entrada de log no event viewer com o Powershell temos o comando Write-Event
Para corrigirmos isso há uma forma bem simples e elegante de criar o source caso ela já não exista, que consiste em utilizar o método SourceExists dentro de um bloco If. Criar um Source novo requer privilégios administrativos. Uma vez feito isso podemos criar nossos logs e registrar as ocorrências, sejam informacionais, alertas ou erros. Lembrando que criar ou validar o source precisaria ser feito apenas uma vez no inicio do script.
if(-not([System.Diagnostics.EventLog]::SourceExists("MeuSource"))){
New-EventLog -LogName 'Application' -Source 'MeuSource'
}
Write-EventLog -LogName 'Application' -Source 'MeuSource' -EventId 9920 -EntryType Information -Message 'Teste de Log 1'
Dúvidas? Sugestões? Comente!
Até a próxima