Files
management-scripts/Create-NewTicketFromBSODAnalysis.ps1
T
2024-06-14 15:01:46 -04:00

41 lines
1.7 KiB
PowerShell

$BlueScreenView = $Global:MSPToolsDirectory + '\BlueScreenView.exe'
$BSODReport = $Global:OutputDirectory + '\BSODReport.txt'
# Remove existing BSOD report
If ( Test-Path $BSODReport ) { Remove-Item $BSODReport -Force -ErrorAction SilentlyContinue }
# Download BlueScreenView
If ( -not (Test-Path $BlueScreenView) ) {
If ( Is64Bit ) { $URL = 'https://www.emberkom.com/tools/BlueScreenView-x64.exe' } Else { $URL = 'https://www.emberkom.com/tools/BlueScreenView-x86.exe' }
Download-File -URL $URL -File $BlueScreenView
If ( -not (Test-Path $BlueScreenView) ) { Return }
}
# Run BlueScreenView
Start-Process $BlueScreenView -ArgumentList "/stext $BSODReport /sort ~1" -Wait
# Wait for BSOD report
For ($i = 0; $i -lt 300; $i++) {
If ( Test-Path $BSODReport ) { Break }
Start-Sleep -Seconds 1
}
# Exit if the BSOD report was not created
If ( -not (Test-Path $BSODReport) ) { Write-Output "BSOD report was not found: ${BSODReport}" ; Return }
# Create ticket
Import-Module $env:SyncroModule -WarningAction SilentlyContinue
#$BSODReportContent = [System.IO.File]::ReadAllText($BSODReport)
$BSODReportContent = Get-Content $BSODReport
$BSODReportContent = $BSODReportContent -join "`n"
$TicketSubject = 'BSOD on ' + $Env:COMPUTERNAME
$TicketIssueType = 'Remote Support'
$TicketStatus = 'New'
Try {
$TicketData = Create-Syncro-Ticket -Subject $TicketSubject -IssueType $TicketIssueType -Status $TicketStatus
Create-Syncro-Ticket-Comment -TicketIdOrNumber $TicketData.ticket.id -Subject "Issue" -Body $BSODReportContent -Hidden $true -DoNotEmail $true
}
Catch { Write-Error "Error creating ticket" ; Return }
# Evaluate BSOD report for signs that Windows needs to be repaired