mengapa tugas penjadwal tugas Windows 7 gagal dengan kesalahan 2147942667

133

Saya menghadapi masalah aneh. Saya telah menjadwalkan tugas untuk meluncurkan file batch. Ketika saya menjalankan tugas dengan opsi Run only when user is logged onsemuanya berfungsi dengan baik. tapi saya ingin menjalankan tugas ini di latar belakang dan karenanya saya menjalankannya menggunakan opsi Run whether user is logged on or not. Sekarang ketika saya menjalankan tugas itu tidak berfungsi. Saya mendapatkan 2 kesalahan berikut. Saya tidak mengerti kesalahan ini. Tolong bantu saya menyelesaikan masalah ini.

 Task Scheduler failed to launch action "C:\Windows\SYSTEM32\cmd.exe" in instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of task "\stmm\Daemon". Additional Data: Error Value: 2147942667.
 Task Scheduler failed to start instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of "\stmm\Daemon"  task for user "GBLADHEDANI\N011940" . Additional Data: Error Value: 2147942667.
Alok
sumber
41
Ubah kode kesalahan menjadi hex untuk mendapatkan 0x8007010B. 7 membuatnya menjadi kesalahan Windows. Yang membuat kode kesalahan 010B 267. "Nama direktori tidak valid". Tentu itu terjadi.
Hans Passant
1
@HansPassant, itu brilian. Konversikan ke hex, gunakan empat byte terakhir untuk mencari kode kesalahan. Semoga aku bisa mengingat yang itu!
Mark Berry
FWIW Saya menemukan UI Penjadwal Tugas utama memiliki tugas dengan 'Hasil Jalankan Terakhir' atau kolom serupa, menampilkan pesan kesalahan 'Nama direktori tidak valid' yang dapat dibaca. Perbaikan dalam situasi kami adalah jawaban dari jp2code di bawah ini tentang menghapus tanda kutip dari folder Mulai Di, karena saya telah menyalinnya dari Perintah yang dikutip untuk dijalankan.
Neek
Jadi masalah saya yang menghasilkan 2147942667 ternyata disebabkan oleh drive yang dipetakan. Ketika saya mengatur jalur "Program / skrip" dan "Mulai di" untuk menggunakan UNC lengkap, pekerjaan berjalan dengan sukses.
user432532
Untuk mengikat komentar luar biasa @ HansPassant: docs.microsoft.com/en-us/windows/win32/debug/system-error-codes
Ian Kemp

Jawaban:

253

Saya punya masalah yang sama.

Solusi untuk saya ditemukan dalam artikel Microsoft KB 2452723:

Windows Vista dan seterusnya tugas terjadwal gagal berjalan jika jalur di bidang "Mulai dalam (opsional)" memiliki tanda kutip

Pada dasarnya, edit tugas terjadwal Anda dan keluarkan Kutipan dari bidang Mulai Masuk:

  1. Buka Tugas Terjadwal Anda
  2. Beralih ke tab "Tindakan"
  3. Buka Aksi Anda
  4. Hapus Kutipan (") dari bidang" Mulai dalam (opsional) "
  5. Simpan dan tutup semua dialog yang terbuka

Edit Kotak Dialog Tindakan

Untuk mendapatkan pesan kesalahan yang relevan:

1) Konversikan 2147942667 menjadi hex: 8007010B
2) Ambil 4 digit terakhir (010B) dan konversikan ke desimal: 267
3) Jalankan: net helpmsg 267
4) Hasil: "Nama direktori tidak valid."

Jendela Prompt Perintah

kode jp2
sumber
5
masalah ini terkait dengan penggunaan izin. Ketika berlari menggunakan opsi Run whether user is logged on or not, saya menggunakan pengguna lain untuk menjalankan aplikasi. Pengguna baru ini tidak memiliki izin yang sesuai untuk membaca data dan karenanya kesalahan. Terima kasih.
Alok
1
Itu juga bukan "izin" bagi saya. Itu adalah folder Start in . Jika ya "C:\Some Path\", itu salah karena memiliki tanda kutip. Perlu mengatakan `C: \ Some Path` (tanpa tanda kutip).
jp2code
16
Ini solusinya. Hapus kutipan dari kotak teks Mulai di folder . Cukup perbaikan esoteris. Membuang waktu berjam-jam untuk hal ini - semoga Microsoft akan membuatnya lebih mudah dengan kesalahan bermanfaat atau memperbaiki bug yang jelas ini.
Joseph
6
Untuk apa layaknya saya mendapatkan kesalahan ini tetapi pengaturan Mulai di folder saya tidak memiliki tanda kutip, bukan jalan yang direferensikan tidak ada.
shufler
2
Saya tidak menggunakan tanda kutip dan masih mendapatkan masalah yang sama. @RayofCommand: apakah Anda menemukan solusi untuk masalah ini.
User1551892
9

Bagi saya itu adalah "Mulai Masuk" - Saya menyalin nilai dari server yang lebih lama, dan memperbarui jalur ke lokasi .exe baru, tapi saya lupa memperbarui lokasi "mulai di" - jika tidak ada, Anda dapatkan kesalahan ini juga

Mengutip komentar hans-passant dari atas, karena itu berharga untuk men-debug masalah ini:

Ubah kode kesalahan menjadi hex untuk mendapatkan 0x8007010B. 7 membuatnya menjadi kesalahan Windows. Yang membuat kode kesalahan 010B 267. "Nama direktori tidak valid". Tentu itu terjadi.

pengguna230910
sumber
7

Ini bisa terjadi karena lebih dari satu alasan. Dalam kasus saya ini terjadi karena masalah izin. Pengguna yang menjalankan tugas sebagai tidak memiliki izin untuk menulis ke direktori log sehingga gagal dengan kesalahan ini.

Cookalino
sumber
3

Saya memiliki masalah yang sama, pada Windows7.

Saya mendapatkan kesalahan 2147942667 dan laporan tidak dapat menjalankan c: \ windows \ system32 \ CMD.EXE. Saya mencoba dengan dan tanpa tanda kutip ganda dalam Script dan Start-in dan tidak ada bedanya. Kemudian saya mencoba mengganti semua referensi path ke drive jaringan yang dipetakan dan dengan referensi UNC (\ Server1 \ Sharexx \ my_scripts \ run_this.cmd) dan itu memperbaikinya untuk saya. Menepuk.

Pat Fahy
sumber
Ini akhirnya berhasil juga untuk saya. Saya harus menggunakan "Penggunaan Bersih" untuk mendapatkan nama server dan kemudian melakukan ping untuk mendapatkan nama domain. Pada akhirnya itu adalah \ machine.domain.local \ app.exe. \\ Machine \ app.exe tidak berfungsi
greg
Melakukannya untukku juga. Terima kasih!
Jace
2

Untuk jawaban yang lebih umum, ubah nilai kesalahan menjadi hex, kemudian cari nilai hex pada Windows Task Scheduler Error dan Success Constants

Olimpiade
sumber
3
Hai Mike. Saya menggunakan Windows Calculator dalam mode Programmer untuk mengkonversi 2147942667ke HEX: 0x8007010B. Nilai itu tidak muncul di tautan yang Anda berikan. Hanya FYI, tentu saja.
jp2code
4
Aku hanya Googled itu: 2147942667 in hex. Google juga kalkulator sekarang.
Baodad
0

Bagi saya itu adalah "Mulai Di" - Saya tidak sengaja meninggalkan '.py' di akhir nama program saya. Dan saya lupa menggunakan nama folder di dalamnya ('Aplikasi').

Sungai Cuomo
sumber
0

Bagi saya, ini disebabkan oleh variabel lingkungan PATH pengguna, yang tampaknya tidak berfungsi meskipun pengguna itu benar, jadi saya perlu menempatkan seluruh jalur yang dapat dieksekusi ke dalam bidang program.

rayzinnz
sumber