Durum
Bazı dosyaları hazırlar, bir program ( .exe
) yürütür ve sonra söz konusu dosyaları siler bir toplu iş komut dosyası var .
Bu görev saatlik olarak çalışmalıdır, bu yüzden Zamanlanmış Görevler kullanarak bunu yapılandırmaya çalışıyorum. Sorun, daha önce bahsedilen program görevden (ne .bat
komut dosyası aracılığıyla ne de .exe
doğrudan çağırırken ) çağrıldığında düzgün çalışmadığı , ancak günlüklerde herhangi bir uyarı veya hata iletisi almıyorum olmasıdır.
Kurmak
Görev, tüm ayrıcalıkların düzgün ayarlandığı bir Windows Hizmet Hesabı olarak çalışacak şekilde yapılandırılmıştır. RDP üzerinden oturum açmak için bu hesabı kullanırken, doğrudan .bat
ve .exe
sorunsuz bir şekilde çalıştırabilirim , ancak yine de görev hiçbir şey yapmıyor gibi görünüyor. Program her zaman bir dosyayı değiştirdiği ve zaman damgasında değiştirilen görev yoluyla değişmediği için bu kolayca gözlemlenir .
Zamanlanmış görev günlüklerinde, bir işlem başlatmak, çıkmak, vb. İçin görev için bilgi iletileri 111
alıyorum. ", bu tamamen alakasız AFAIK). Uygulama günlüklerinde kesinlikle hiçbir şey almıyorum.
Şüphelendiğim sorun bu
Program, GUI'ye ihtiyaç duyulmamasına rağmen hiçbir etkileşim gerektirmediğinden ve operasyonlardan sonra kendini kapattığından, bir çeşit açılış ekranını (aslında normal bir pencere) ortaya çıkaran eski bir canavarlıktır. Pencere yaklaşık 2 saniye boyunca görünür.
Bir GUI için bu gereksinimin görev başarısızlıkla ilgili bir şey olduğundan şüpheleniyorum, ancak emin değilim. Görevin altında çalıştığı kullanıcıyla (RDP aracılığıyla) oturum açtığımda, zamanlanan görevi başlattığımda pencere görüntülenmiyor.
GUI hakkında düzenleme
Ana pencere (kullanarak ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden
) olmadan programı başlatan çok küçük bir C # yürütülebilir yaptım . Bu şekilde bile, zamanlanan görev yine de programı doğru bir şekilde başlatmayı başaramaz, ancak dönüş kodu şimdi 0
.
Güncelleme
Görevi "kullanıcının oturum açmış olup olmadığını çalıştır" diyecek şekilde yapılandırdığımda ve run with highest privileges
seçeneğin işareti kaldırıldığında hata değeri olur 2147943859
.
Sorun gidermek için ne yapabilirim?
İşletim Sistemi = Windows Server 2008 R2 SP1
Daha fazla bilgi gerekiyorsa, lütfen yorumlarda bana bildirin.
.exe
komut dosyasının içindeki parametrelerle bir "program" başlatırken , girdinin argüman olarak düzgün şekilde sağlanması gerekir.