Будучи предупрежденным, когда запланированная задача Windows перестала работать

Один простой метод состоит в том, чтобы просто выполнить сниффера как tcpdump/wireshark на компьютере и отослать запрос DHCP. Если Вы видите какие-либо предложения другой затем с Вашего реального сервера DHCP затем, Вы знаете, что у Вас есть проблема.

4
задан 29 June 2009 в 09:28
5 ответов

Я делаю это как часть запланированного задания. Все запланированные задания, которые я выполняю, являются сценариями. Даже если это - графическое приложение, я запускаю его из .bat файла. Все сценарии включают проверку ошибок, и они используют osql для добавления строки к "контрольной таблице" задания. Затем один запрос на таблице говорит мне, какие задания, за которыми следуют, неудавшийся или (любезность левого соединения), не сообщили ни о каком состоянии. Я выполняю этот запрос как запланированное задание на моей собственной рабочей станции, и это отправляет мне по почте отчет.

МЛАДШИЙ

2
ответ дан 3 December 2019 в 03:38

Проанализируйте вывод "schtasks" сами с помощью ADODB.

Вот немного программы VBScript, которая проанализирует вывод с предварительно сделанным, ЕСЛИ/ЗАТЕМ блоки для "Последнего Результата", не равного нулю и "Состоянию" как ", Не Могли Запуститься". Можно записать в так значительно большем количестве условий, как Вы любите и заменяете кодом в реагировать на состояние отказа однако, Вы хотите.

Option Explicit

' ADO Constants
Const adCmdText = 1
Const adLockOptimistic = 3
Const adOpenStatic = 3

' Path to text file and filename
Const FILEPATH = "C:\WINDOWS\TEMP"  ' Don't append "\"
Const FILENAME = "tasks.csv"

Dim x, objShell, objConn, objRS, dictFields, Field

' Write output of schtasks to file
Set objShell = CreateObject("WScript.Shell")
objShell.Run "%COMSPEC% /c schtasks /query /fo csv /v > """ & FILEPATH & "\" & FILENAME & """", 1, True

' Connect recordset to CSV file
Set objConn = CreateObject("ADODB.Connection")
Set objRS = CreateObject("ADODB.Recordset")

objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FILEPATH & ";Extended Properties=""text;HDR=YES;FMT=CSVDelimited"""
objRS.Open "SELECT * FROM " & FILENAME, objConn, adOpenStatic, adLockOptimistic, adCmdText

' Load header into dictionary - Prefer to do this in case format changes in future version of Windows
Set dictFields = CreateObject("Scripting.Dictionary")

x = 0
For Each Field in objRS.Fields
    dictFields.Add Ltrim(Rtrim(Field)), x
    x = x + 1
Next ' Field
objRS.MoveNext

Do Until objRS.EOF

    ' Check last status for something other than 0
    If objRS.Fields.Item(dictFields("Last Result")) <> 0 Then 
        WScript.Echo "Scheduled Task " & objRS.Fields.Item(dictFields("TaskName")) & " returned status of " & objRS.Fields.Item(dictFields("Last Result"))
    End If

    ' Check "Status" for "Could Not Start"
    If NOT IsNull(objRS.Fields.Item(dictFields("Status"))) Then
        If UCase(objRS.Fields.Item(dictFields("Status"))) = "COULD NOT START" Then  
            WScript.Echo "Scheduled Task " & objRS.Fields.Item(dictFields("TaskName")) & " could not start"
        End If
    End If

    objRS.MoveNext
Loop
2
ответ дан 3 December 2019 в 03:38
  • 1
    Что, если эта задача перестала работать? –  Simon Hartcher 14 August 2009 в 03:13

Вы могли также изучить выполнение запланированной задачи / сервер сценария. Я использую AdTempus.

Можно также генерировать тонны отчетов и предупреждений. Можно даже генерировать схемы потока заданий.

0
ответ дан 3 December 2019 в 03:38

Изменение строки в справке bat-файла?

Эхо, выводящее неудачные задачи, это выведет неудачное имя задачи и его код состояния

For /F "skip=2 Tokens=1-10 Delims=," %%A in ('schtasks /query /fo csv /v') do if %%G NEQ 0 Echo %%A --} %%G
0
ответ дан 3 December 2019 в 03:38
  • 1
    Имя задачи с запятой в нем собирается завинтить это. CSV обманчиво прост проанализировать неправильно. –  Evan Anderson 30 June 2009 в 04:06

Одна из проблем здесь заключается в том, что если задача не выполняется из-за того, что сервер подключен к сети, то любой мониторинг на этом сервере также не будет работать.

Проверьте https://cronitor.io. Это простая служба мониторинга для запланированных заданий и звучит так, как будто это именно то, что вы ищете.

0
ответ дан 3 December 2019 в 03:38

Теги

Похожие вопросы