Görev Zamanlayıcı ile ilgili sorun, hangi çıkış kodunun döndürüldüğünün önemi yoktur, görev her zaman bir Olay Kimliği 201 kaydeder - İşlem Tamamlandı ... doğru olan ... ne olursa olsun, çalıştırılan iş dahili olarak başarısız olsa bile görev tamamlandı .
Daha ileriye bakıldığında, günlüğe kaydedilen Olayı görüntülerken Ayrıntılar sekmesine tıklayarak, ayarların doğru ResultCodeyapıldığını görebiliriz EventData. Yani bunu GUI'ye göre filtrelemek basit bir iştir? .... peki hayır ... EventID'nin ötesinde bir filtre yoktur. Şimdi üzerinde tetiklemek için özel bir Olay filtresi yazmak zorundayız ResultCode. İhtiyacımız olan XML XPath sorgusu şudur:
<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">
*[System[(Level=4 or Level=0) and (EventID=201)]]
and
*[EventData[Data[@Name='ResultCode'] and (Data='2147942401')]]</Select>
</Query>
</QueryList>
Yani onu parçalamak için istiyoruz:
Event log: Microsoft-Windows-TaskScheduler/Operational
Event Level: 4 or 0 = Information
Event ID: 201
And
Event Data: ResultCode = 2147942401
Bozuk çıkış kodunu 1 olarak ayarlarsak neden ResultCode = 2147942401? çünkü aslında ondalık olan 0x1onaltılık 0x80070001olanı döndürür 2147942401. Bu nedenle, "Doğru" Sonuç kodunu almak için etkinliğinizi bulmanız ve Ayrıntılar sekmesini tıklamanız, ardından filtrelenecek "Doğru" ResultCode öğesini bulabilmeniz gerekir.