-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathEventLog.ps1
51 lines (44 loc) · 1.71 KB
/
EventLog.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
###########################################################################
# NOME: Zabbix-Monitor log advanced
# AUTOR: Isaac de Moraes
# COMENTÁRIO: Script para monitorar logs do Windows com busca avançada
# HISTÓRICO DE VERSÃO: 1.0
# 1.0 | 22/03/2018 - Versão inicial - Isaac de Moraes
############################################################################
# Variável do ID do evento no Event Viwer.
$id = 1503
# Variável do nome do valor da propriedade log, não o display name.
# Mais informações: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-eventlog?view=powershell-5.1
$name = "System"
# Variável do arquivo coletado
$new = "C:\new.txt"
# Variável do último arquivo coletado
$old = "C:\old.txt"
# Obtendo coletada de informações do Event Viwer
Get-EventLog -InstanceId $id -LogName $name -Newest 1 | Select-Object "Index" | Out-File C:\new.txt
# Condição para criar o arquivo old.txt, pois ele é necessário para comparação, e é necessário ter conteúdo arquivos vazios não funcinam
if (Test-Path $old){
#echo "Arquivo old.txt existe" #Descomente para Debug do script
}
else {
New-Item $old -ItemType file
echo "
Iakim
-----
Isaac
Moraes" > $old
#echo "Arquivo old.txt criado" #Descomente para Debug do script
}
# Comparando se os arquivos são iguais, se a index for igual, isso significa que não há um log do eventID novo.
if (Compare-Object -ReferenceObject $(Get-Content $new) -DifferenceObject $(Get-Content $old)) {
Remove-Item -Path $old
Rename-Item -NewName "old.txt" -Path $new
# Envia para o zabbix
echo "1"
#echo "Alterado" #Descomente para Debug do script
}
else{
# Envia para o zabbix
echo "0"
#echo "Não alterado" #Descomente para Debug do script
}