Skip to content

Commit 5727786

Browse files
author
Blake Drumm
authored
Update Get-EventLogs.ps1
Added error handling.
1 parent d795f20 commit 5727786

File tree

1 file changed

+61
-53
lines changed

1 file changed

+61
-53
lines changed

Powershell/Get-EventLogs.ps1

Lines changed: 61 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -110,70 +110,78 @@ function Get-EventLogs
110110
Write-Host "$server" -ForegroundColor Green
111111
foreach ($log in $logs)
112112
{
113-
Time-Stamp
114-
Write-Host " Exporting log: " -NoNewline
115-
Write-Host $log -ForegroundColor Magenta -NoNewline
116-
Write-Host " "
117-
if ($server -notmatch $env:COMPUTERNAME)
113+
$availableLogs = Get-EventLog * | Select Log -ExpandProperty Log
114+
if ($log -notin $availableLogs)
118115
{
119-
try
116+
continue
117+
}
118+
else
119+
{
120+
Time-Stamp
121+
Write-Host " Exporting log: " -NoNewline
122+
Write-Host $log -ForegroundColor Magenta -NoNewline
123+
Write-Host " "
124+
if ($server -notmatch $env:COMPUTERNAME)
125+
{
126+
try
127+
{
128+
if ($log -like '*/*')
129+
{ $logname = $log.split('/')[0] }
130+
else { $logname = $log }
131+
Invoke-Command -ComputerName $server {
132+
$fileCheck = test-path "c:\windows\Temp\$using:server`.$using:logname.evtx"
133+
if ($fileCheck -eq $true)
134+
{
135+
Remove-Item "c:\windows\Temp\$using:server`.$using:logname.evtx" -Force
136+
}
137+
wevtutil epl $using:log "c:\windows\Temp\$using:server.$using:logname.evtx"
138+
wevtutil al "c:\windows\Temp\$using:server`.$using:logname.evtx"
139+
} -ErrorAction Stop
140+
$fileCheck2 = test-path "$OutputPath\$server" -ErrorAction Stop
141+
if (!($fileCheck2))
142+
{
143+
New-Item -ItemType directory -Path "$OutputPath" -Name "$server" -ErrorAction Stop | Out-Null
144+
New-Item -ItemType directory -Path "$OutputPath\$server" -Name "localemetadata" -ErrorAction Stop | Out-Null
145+
}
146+
Move-Item "\\$server\c$\windows\temp\$server.$logname.evtx" "$OutputPath\$server" -force -ErrorAction Stop
147+
#"Get-ChildItem \\$server\c$\windows\temp\localemetadata\"
148+
Get-ChildItem "\\$server\c$\windows\temp\localemetadata\" -ErrorAction Stop |
149+
where { $_.name -like "*$server*" -and $_.name -like "*$logname*" } |
150+
Move-Item -Destination "$OutputPath\$server\localemetadata\" -force -ErrorAction Stop
151+
}
152+
catch
153+
{
154+
Time-Stamp
155+
Write-Warning "$_"
156+
break
157+
}
158+
159+
}
160+
else
120161
{
121162
if ($log -like '*/*')
122163
{ $logname = $log.split('/')[0] }
123164
else { $logname = $log }
124-
Invoke-Command -ComputerName $server {
125-
$fileCheck = test-path "c:\windows\Temp\$using:server`.$using:logname.evtx"
126-
if ($fileCheck -eq $true)
127-
{
128-
Remove-Item "c:\windows\Temp\$using:server`.$using:logname.evtx" -Force
129-
}
130-
wevtutil epl $using:log "c:\windows\Temp\$using:server.$using:logname.evtx"
131-
wevtutil al "c:\windows\Temp\$using:server`.$using:logname.evtx"
132-
} -ErrorAction Stop
133-
$fileCheck2 = test-path "$OutputPath\$server" -ErrorAction Stop
165+
$fileCheck = test-path "c:\windows\Temp\$server.$logname.evtx"
166+
if ($fileCheck -eq $true)
167+
{
168+
Remove-Item "c:\windows\Temp\$server.$logname.evtx" -Force | Out-Null
169+
}
170+
wevtutil epl $log "c:\windows\Temp\$server.$logname.evtx"
171+
wevtutil al "c:\windows\Temp\$server.$logname.evtx"
172+
173+
$fileCheck2 = test-path "$OutputPath\$server"
134174
if (!($fileCheck2))
135175
{
136-
New-Item -ItemType directory -Path "$OutputPath" -Name "$server" -ErrorAction Stop | Out-Null
137-
New-Item -ItemType directory -Path "$OutputPath\$server" -Name "localemetadata" -ErrorAction Stop | Out-Null
176+
New-Item -ItemType directory -Path "$OutputPath" -Name "$server" | Out-Null
177+
New-Item -ItemType directory -Path "$OutputPath\$server" -Name "localemetadata" | Out-Null
138178
}
139-
Move-Item "\\$server\c$\windows\temp\$server.$logname.evtx" "$OutputPath\$server" -force -ErrorAction Stop
179+
Move-Item "C:\windows\temp\$server.$logname.evtx" "$OutputPath\$server" -force
140180
#"Get-ChildItem \\$server\c$\windows\temp\localemetadata\"
141-
Get-ChildItem "\\$server\c$\windows\temp\localemetadata\" -ErrorAction Stop |
181+
Get-ChildItem "C:\windows\temp\localemetadata\" |
142182
where { $_.name -like "*$server*" -and $_.name -like "*$logname*" } |
143-
Move-Item -Destination "$OutputPath\$server\localemetadata\" -force -ErrorAction Stop
144-
}
145-
catch
146-
{
147-
Time-Stamp
148-
Write-Warning "$_"
149-
break
150-
}
151-
152-
}
153-
else
154-
{
155-
if ($log -like '*/*')
156-
{ $logname = $log.split('/')[0] }
157-
else { $logname = $log }
158-
$fileCheck = test-path "c:\windows\Temp\$server.$logname.evtx"
159-
if ($fileCheck -eq $true)
160-
{
161-
Remove-Item "c:\windows\Temp\$server.$logname.evtx" -Force | Out-Null
162-
}
163-
wevtutil epl $log "c:\windows\Temp\$server.$logname.evtx"
164-
wevtutil al "c:\windows\Temp\$server.$logname.evtx"
165-
166-
$fileCheck2 = test-path "$OutputPath\$server"
167-
if (!($fileCheck2))
168-
{
169-
New-Item -ItemType directory -Path "$OutputPath" -Name "$server" | Out-Null
170-
New-Item -ItemType directory -Path "$OutputPath\$server" -Name "localemetadata" | Out-Null
183+
Move-Item -Destination "$OutputPath\$server\localemetadata\" -force
171184
}
172-
Move-Item "C:\windows\temp\$server.$logname.evtx" "$OutputPath\$server" -force
173-
#"Get-ChildItem \\$server\c$\windows\temp\localemetadata\"
174-
Get-ChildItem "C:\windows\temp\localemetadata\" |
175-
where { $_.name -like "*$server*" -and $_.name -like "*$logname*" } |
176-
Move-Item -Destination "$OutputPath\$server\localemetadata\" -force
177185
}
178186
}
179187

0 commit comments

Comments
 (0)