PowerShell e o dia a dia do DBA SQL SERVER
(Gravando Mensagens no EventViewer)
Pessoal,
Vamos Gravar erros no Eventlog do Windows ?
A chamada da função é essa
write-eventlog "TesteDoWriteLog" "Gerei um Evento de Erro" 1
Aonde eu passo o Source, o erro e o tipo.
Vamos Fazer um Teste ?..copie este codigo e coloque no PS....depois olhe no eventviewer da sua maquina
Function write-eventlog ([string] $Ssource, [string] $Evento, [int] $Tipo)
#$tipo = 1 Error, 2 Warning, 3 Informatoin, 4 SuccessAudit, 5 FailureAudit
{
$event=new-object System.Diagnostics.EventLog("Application")
$event.Source=$Ssource
switch ($tipo) {
1 { $Infevt=[System.Diagnostics.EventLogEntryType]::Error }
2 { $Infevt=[System.Diagnostics.EventLogEntryType]::Warning }
3 { $Infevt=[System.Diagnostics.EventLogEntryType]::Information }
4 { $Infevt=[System.Diagnostics.EventLogEntryType]::SuccessAudit }
5 { $Infevt=[System.Diagnostics.EventLogEntryType]::FailureAudit }
}
$event.WriteEntry($evento,$Infevt,70)
}
write-eventlog "TesteDoWriteLog" "Gerei um Evento de Erro" 1
write-eventlog "TesteDoWriteLog" "Gerei um Evento de Warning" 2
write-eventlog "TesteDoWriteLog" "Gerei um Evento de Information " 3
Mas aonde uso isso ?
Digamos que estamos fazendo algum script no powershell e necessitamos que um determinado erro va para o eventviewer da maquina central
algo como um truncate e tabela não existe.
$ServidorCentral = "SERVER1\MSSQLSERVER_1"
$DatabaseCentral = "DBA"
$sql = "truncate table diario.tb_LinkeDServersErroNaoExiste"
Invoke-Sqlcmd -ServerInstance $ServidorCentral -Database $DatabaseCentral -Query $sql -ErrorAction "silentlyContinue"
if (!$?)
{
$Erro = "Verifique Se o Servidor Central/Database/Tabela existem !!! "
write-eventlog DBACheckLIst $Erro 1
exit;
}
Assim coloco um evento para que se alguma ferramenta estiver monitorando possa pegar.
O -ErrorAction "silentlyContinue" me indica que se der um erro continue sem gerar msg de erro no PS
o if (!$?) eu pego se houver algum erro e trato ele.
No meu primeiro Artigo eu mostro como rodar os scripts
PowerShell e o dia a dia do DBA SQL SERVER - INTRODUÇÃO e checando a conectividade de linked servers
Laerte Poltronieri Junior
PowerShell no Dia a Dia do DBA
http://laertejuniordba.spaces.live.com