-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcheck_backup.ps1
89 lines (70 loc) · 1.62 KB
/
check_backup.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
$returnStateOK = 0
$returnStateWarning = 1
$returnStateCritical = 2
$returnStateUnknown = 3
$date = (Get-Date).AddDays(-1)
try
{
$CritEvents = Get-WinEvent @{Path = "C:\Windows\System32\winevt\Logs\Microsoft-Windows-Backup.evtx" ; StartTime = $date; Level = 2,1} -ErrorAction SilentlyContinue
$CritNbEv = $CritEvents.Count
}
catch
{
}
try
{
$WarnEvents = Get-WinEvent @{Path = "C:\Windows\System32\winevt\Logs\Microsoft-Windows-Backup.evtx" ; StartTime = $date; Level = 3} -ErrorAction SilentlyContinue
$WarnNbEv = $WarnEvents.Count
}
catch
{
}
try
{
$OkEvents = Get-WinEvent @{Path = "C:\Windows\System32\winevt\Logs\Microsoft-Windows-Backup.evtx" ; StartTime = $date; ID = 4 } -ErrorAction SilentlyContinue
$OkNbEv = $OkEvents.Count
}
catch
{
}
if (($CritNbEv -eq $Null -and $CritEvents -eq $Null) -or $CritNbEv -eq 0)
{
$CritNbEv = 0
}
else
{
$CritNbEv = 1
}
if ($WarnNbEv -eq $Null -and $WarnEvents -eq $Null )
{
$WarnNbEv = 0
}
else
{
$WarnNbEv = 1
}
if ($OkNbEv -eq $Null -and $OkEvents -eq $Null )
{
$OkNbEv = 0
}
else
{
$OkNbEv = 1
}
if ($WarnNbEv -ne 0) {
$message = "WARNING - Found {0} warning in Microsoft-Windows-Backup event log" -f $WarnNbEv
Write-Host $message
exit $returnStateWarning
}
if ($OkNbEv -ne 0 ) {
$message = "OK - No errors in Microsoft-Windows-Backup log "
Write-Host $message
exit $returnStateOK
}
if ($CritNbEv -ne 0 ) {
$message = "CRITICAL - Found {0} errors in Microsoft-Windows-Backup event log" -f $CritNbEv
Write-Host $message
exit $returnStateCritical
}
Write-Host "UNKNOW - Not found backups events"
exit $returnStateUnknown