Windows zamanlanmış görevi 0xc000013a hata koduyla tamamlanamıyor


11

Windows Server 2003 kullanıyorum ve tamamlanamayan zamanlanmış bir görevim var. Görev, her gün 15: 00'de bir Windows Komut Denetimi (.cmd) çalıştırmak üzere ayarlanmıştır. Komut dosyası, bir SQL Server veritabanından bazı verileri ayıklayan ve bu verileri bir FTP sunucusuna yükleyen bir program çalıştırır.

Zamanlanmış görevler klasörünün "Son sonuç" sütununda görüntülenen hata kodu 0xc000013a. Hızlı bir Google araması, şu Microsoft destek sayfasına yönlendirir: En yaygın "C" hata kodu "0xC000013A: Uygulama bir CTRL + C" nedeniyle sonlandırıldı.

Görev çalışırken hiç kimse oturum açmaz, bu nedenle CTRL + C tuşlarına basacak kimse yoktur. Microsoft belgelerinde burada söylenenleri anladığımdan emin değilim.

Temel şeyleri kontrol ettim - zamanlanan görev etkinleştirildi, her gün çalışması planlandı ve geçerli bir konumda bulunan bir dosyayı işaret ediyor. İlginç bir şekilde, bu görevi el ile çalıştırdığımda (ya komut satırından .cmd komut dosyasını çalıştırarak ya da görevi sağ tıklatıp "Çalıştır" ı tıklatarak) görev başarıyla tamamlanır.

Bu hata kodu ne anlama geliyor ve zorlamak için orada olmadığımda bu görevi nasıl çalıştırabilirim?


Son komut dosyasına kendiniz bir çıkış kodu eklemeyi deneyin (örn. exit 0). Hala başarısız olursa, kendi başına başarısız olur. Değilse, görev zamanlayıcısı tarafından yanlış yorumlanan sahte bir çıkış koduydu.
2018'de

Yanıtlar:


6

Zamanlanmış komut dosyalarında sorun giderme:

  1. Henüz yapmadıysanız, Gelişmiş > Günlüğü Görüntüle altındaki GUI'de Zamanlanmış Görevler günlük dosyasını kontrol edin . En son girişleri bulmak için dosyada " " araması yaparsanız, biraz fazladan hata bilgisi görebilirsiniz.***

  2. Çıkışı yakalamak için bir günlük dosyası tanımlayın ve orada hem standart çıkış hem de standart hata gönderin. Herhangi bir hata mesajını bastırmadığınızdan emin olmak için herhangi bir yankıyı KAPALI olarak yankı AÇIK olarak değiştirin.
    Örneğin, komut dosyanız çağrılırsa ftp.data.cmd, zamanlanan göreviniz şöyle görünebilir,

    cmd /c ftp.data.cmd >> ftp.data.log 2>&1

  3. Senaryo asılı mı? Belki görev zamanlayıcısı belirtilen bir süre sonra komut dosyasını (dolayısıyla CTRL + C hata kodunu) öldürmektedir. Bunlardan bazılarını tahtanıza stratejik noktalara ekleyin,

    echo %DATE% %TIME%

  4. Komut dosyasını çalıştıran hesabın komut dosyasındaki her şeye izinleri / erişimi olduğundan emin misiniz?

  5. Herhangi bir neşe elde edemezseniz, bu komutu çalıştırın ve çıktıyı buraya gönderin, belki de programlamaya başlayabiliriz,

    schtasks /query /v /fo LIST /s YOURSERVER


4

Özellikle hata mesajının ne anlama geldiğini bilmediğim için soruyu doğrudan cevaplayamıyorum (ne de bu nedenle nasıl düzeltilir), ancak sorun gidermeye çalışsaydım, bir günlük dosyasına birkaç yazma ekler komut dosyasındaki stratejik noktalar ve daha sonra planlanan süreden sonra çalıştırılacak son kontrol noktasının ne olduğunu görün.

Şüphem, komut dosyasının altında çalıştığı kimlik bilgileri nedeniyle başarısız olan bir şey veya komut dosyasında oturum açmış bir kullanıcının ihtiyacı olması olabilir. Senaryodaki şeylerin başarısız olduğu yere daralmak, "rahatsız edici" kodu bulmanıza yardımcı olabilir.


2

Bunun eski bir gönderi olduğunu anlıyorum, ancak çözüm ararken çok yardımcı oluyorlar ve belki de bulduğum şey de yardımcı olabilir. Bir ftp sunucusuna yüklemek için Windows Server 2003'te WinSCP kullanıyordum ve aynı hata iletisini aldım ve görevi vermiş olsam bile SchedLgU.txt dosyası "Görevi verdiyse görevi durdur:" bölümünde yeterli zamanı göstermedi yüklemek için bol zaman.

Görev Yöneticisi'ne baktım WinSCP.exe'nin temizlenmediğini görebiliyordum ve listede tonlarca süreç vardı, bu yüzden açılan herhangi bir işlemi öldürmek için bir toplu iş dosyası (taskkill / f / im winscp.exe) oluşturdum ve ben Bu toplu iş dosyasını WinSCP'den önce çalıştırın ve şimdi iyi çalışıyor.


2

Bugün uzak bir sunucuda bu koştu ve çözüm "Yalnızca kullanıcı oturum açmışsa çalıştır" olarak "Kullanıcı oturum açmış olup olmadığını çalıştır" için çalışma ayarını değiştirmek oldu.

"Yalnızca kullanıcı oturum açtığında çalıştır" ile görev, uzak masaüstü oturumum zaman aşımına uğradığında kapatılan bir komut penceresi başlatır. "Kullanıcının oturum açmış olup olmadığını çalıştır" ile görev çalışırken pencere görüntülenmez, bu nedenle uzak masaüstü oturumum bittiğinde yürütme durmaz.


1

Cori'nin cevabına benzer şekilde, görevi çalıştıran kullanıcı hesabı oturum açmış olan kullanıcıyla aynı izinlere sahip olmadığında bu hatayı gördüğüm için zamanlanan görevin kim olarak çalıştırılacağını kontrol etmenizi öneririm


1

Bu daha önce gerçekleşmişse, belki de bir ağ kesintisi veya başka bir ana bilgisayardaki bir sorun gibi bir durum hatayı açıklayabilir.


1

Aynı hatayla karşılaştım ve çalıştırdığım toplu iş dosyası bazı dosyaların DEL komutuyla silinmesini istiyordu. Y / N'yi toplu işleme yanıtlayacak bir kullanıcı olmadığından, zamanlanan görev sonlandırılır. Zamanlanmış görevler günlüğümde bulduğum ileti şu: "görev sonlandırıldı. Bu eylem bir yönetici veya Görev Zamanlayıcı hizmeti tarafından başlatıldı (örneğin, bilgisayar artık boşta değil)." Benim önerim, nerede durduğunu veya bazı kullanıcı etkileşimi istediğini görmek için görevi komut isteminden manuel olarak çalıştırmak, düzeltmek ve göreviniz iyi çalışacaktır.


1

Programı Görev Zamanlayıcı denetimi altında çalıştırmaya çalışıyorsanız, System.Environment.CurrentDirectory, yürütülebilir dosyalarınızın bulunduğu yere C: \ Windows \ System32 döndürecektir. Bu hata, dosya bulunamadı hatası olabilir; Bir alt dizine giriş yapmaya çalışıyordum ve bu System32 ağacında yoktu.


0

Senaryolarımda bu açık. Bu toplu dosya sonunda "duraklatma" var ve zamanlanmış görev 20 dakika ile sınırlıdır neden olur. Kullanıcı mevcut olduğunda, merhaba işin akışını görebilirsiniz. Ne zaman toplu iş dosyası 20 dakika sonra zamanlanmış görev tarafından sonlandırılır. Bu 0xc000013a'ya neden oluyor ve sorun değil.


0

Ben de aynı sorunu vardı ve "Sistem başlangıcında" "Oturum açıldığında" tetiği değiştirerek düzeltildi.


0

aynı sorunu vardı .. zamanlanmış görevi çalıştırmak için kayıtlı kullanıcı ile oynayarak düzeltildi. Sonunda, etki alanını değiştirmek cevaptı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.