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 ResultCode
yapı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 0x1
onaltılık 0x80070001
olanı 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.