Windows does not have an ntevt.exe. It has a dll (C:\Windows\System32\wbem\ntevt.dll) but you can't run that directly.
The web site you referenced mentions NTEVL which appears to be part of "CA Unified Infrastructure Management SaaS (Nimsoft / UIM)".
https://knowledge.broadcom.com/external/article/136696/ntevl-probe-alarms-are-not-clearing.html
https://knowledge.broadcom.com/external/article/123213/ntevl-probe-will-not-start-or-crashes-as.html
If you have that software installed you will need to consult it's product documentation as to how to configure alerts.
Based on your question, I doubt that you are using that software. You will need to explain what your specific monitoring requirements are and the task failures that you have encountered.
One option would be use a Powershell script that watches tasks' LastTaskResult and generates an audible alert when it sees a non zero return code.
Save this as TaskMonitor.ps1 file, open a "Run as administrator" Powershell prompt, and run it.
Script was updated 7/10/2022.
#----------------------------------------------
# Script: TaskMonitor.ps1
# Author: Motox80 on Microsoft Technet Forums
#----------------------------------------------
# The LookInterval should be greater than 2 minutes due to a bug in Get-ScheduledTaskInfo
# The seconds value always matches the minutes value in LastRunTime.
$LookInterval = 121 # in seconds, how often should we look for a failure
Add-Type -AssemblyName System.speech
$SpeechSynthesizer = New-Object –TypeName System.Speech.Synthesis.SpeechSynthesizer
$SpeechSynthesizer.SelectVoice("Microsoft Zira Desktop")
$RunningTasks = @()
cls
"{0} - Monitoring started." -f (Get-Date)
Function Report ($t) {
if ($t.LastTaskResult -eq 0) { # Success
"{0} - {1} - {2} - {3}" -f $t.LastRunTime, $t.TaskName, $t.LastTaskResult, $t.TaskPath
} elseif ($t.LastTaskResult -eq 2147946720) { # The operator or administrator has refused the request.
"{0} - {1} - {2} - {3}" -f $t.LastRunTime, $t.TaskName, $t.LastTaskResult, $t.TaskPath | Write-Host -ForegroundColor Yellow
} else {
"{0} - {1} - {2} - {3}" -f $t.LastRunTime, $t.TaskName, $t.LastTaskResult, $t.TaskPath | Write-Host -ForegroundColor Cyan
$SpeechSynthesizer.Speak("Warning $($t.TaskName) has failed")
}
}
while ($true) {
# This section will monitor tasks that started and ended within the LookInterval timeframe
$AllTasks = Get-ScheduledTask -TaskPath \ # Snapshot of current tasks since some were getting missed
$AllTasks | Where-Object -Property State -ne Running | Get-ScheduledTaskInfo | foreach {
#" {0} - {1} - {2}" -f $_.LastRunTime, $_.TaskName, (New-TimeSpan -start $_.LastRunTime -end (get-date)).TotalSeconds
if ((New-TimeSpan -start $_.LastRunTime -end (get-date)).TotalSeconds -lt $LookInterval) {
Report $_
}
}
# Now analyze the tasks that were still running during our last analysis.
$RunningTasks | foreach {
Get-ScheduledTask -TaskName $_.TaskName -TaskPath $_.TaskPath | Where-Object -Property State -ne Running | Get-ScheduledTaskInfo | foreach {
Report $_
}
}
$RunningTasks = @() # reset the array
$AllTasks | Where-Object -Property State -eq Running | foreach {
$RunningTasks += [PSCustomObject]@{
TaskName = $_.TaskName;
TaskPath = $_.TaskPath
}
}
Remove-Variable AllTasks
Start-Sleep -Seconds $LookInterval
}