Tại sao Windows 7 tác vụ lập lịch tác vụ không thành công với lỗi 2147942667


132

Tôi đang đối mặt với một vấn đề kỳ lạ. Tôi đã lên lịch một nhiệm vụ để lauch một tập tin hàng loạt. Khi tôi chạy tác vụ với tùy chọn, Run only when user is logged onmọi thứ đều hoạt động tốt. nhưng tôi muốn chạy tác vụ này trong nền và do đó tôi đang chạy nó bằng tùy chọn Run whether user is logged on or not. Bây giờ khi tôi chạy tác vụ thì nó không hoạt động. Tôi nhận được 2 lỗi sau. Tôi không hiểu lỗi này. Xin hãy giúp tôi giải quyết vấn đề này.

 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.

41
Chuyển đổi mã lỗi thành hex để nhận 0x8007010B. 7 làm cho nó một lỗi Windows. Điều này làm cho mã lỗi 010B 267. "Tên thư mục không hợp lệ". Chắc chắn, điều đó xảy ra.
Hans Passant

1
@HansPassant, thật tuyệt vời. Chuyển đổi thành hex, sử dụng bốn byte cuối cùng để tìm kiếm mã lỗi. Hy vọng tôi có thể nhớ điều đó!
Mark Berry

FWIW Tôi thấy giao diện người dùng Lập lịch tác vụ chính có tác vụ với cột 'Kết quả chạy lần cuối' hoặc cột tương tự, hiển thị thông báo lỗi 'Tên thư mục không hợp lệ'. Cách khắc phục trong tình huống của chúng tôi là câu trả lời từ jp2code bên dưới về việc xóa dấu ngoặc kép khỏi thư mục Start In, vì tôi đã sao chép nó từ Lệnh được trích dẫn để chạy.
Neek

Vì vậy, vấn đề của tôi dẫn đến 2147942667 hóa ra là do một ổ đĩa được ánh xạ. Khi tôi đặt đường dẫn "Chương trình / tập lệnh" và "Bắt đầu" để sử dụng UNC đầy đủ, công việc đã chạy thành công.
dùng432532

Để gắn kết với nhận xét tuyệt vời của @ HansPassant: docs.microsoft.com/en-us/windows/win32/debug/system-error-codes
Ian Kemp

Câu trả lời:


253

tôi đã có vấn đề tương tự.

Giải pháp cho tôi đã được tìm thấy trong Microsoft KB Điều 2452723:

Các tác vụ theo lịch trình trở đi của Windows Vista không chạy được nếu đường dẫn trong trường "Bắt đầu (Tùy chọn)" có dấu ngoặc kép

Về cơ bản, chỉnh sửa tác vụ theo lịch trình của bạn và đưa Báo giá ra khỏi trường Bắt đầu:

  1. Mở tác vụ theo lịch trình của bạn
  2. Chuyển sang tab "Hành động"
  3. Mở hành động của bạn
  4. Xóa Báo giá (") khỏi trường" Bắt đầu (tùy chọn) "
  5. Lưu và đóng tất cả các hộp thoại mở

Chỉnh sửa hộp thoại hành động

Để nhận thông báo lỗi có liên quan:

1) Chuyển đổi 2147942667 sang hex: 8007010B
2) Lấy 4 chữ số cuối (010B) và chuyển đổi thành số thập phân: 267
3) Chạy: net helpmsg 267
4) Kết quả: "Tên thư mục không hợp lệ."

Cửa sổ nhắc lệnh


5
vấn đề liên quan đến việc cho phép sử dụng. Khi chạy bằng tùy chọn Run whether user is logged on or not, tôi đã sử dụng một người dùng khác để chạy ứng dụng. Người dùng mới này không có quyền thích hợp để đọc dữ liệu và do đó xảy ra lỗi. Cảm ơn.
Alok

1
Nó cũng không "cho phép" đối với tôi. Đó là thư mục Bắt đầu . Nếu nó có "C:\Some Path\", đó là sai bởi vì nó có dấu ngoặc kép. Nó cần phải nói `C: \ Một số đường dẫn` (không có dấu ngoặc kép).
jp2code

16
Đây là giải pháp. Xóa dấu ngoặc kép khỏi hộp văn bản Bắt đầu trong thư mục . Khá là sửa chữa bí truyền. Đã lãng phí hàng giờ cho việc này - ước gì Microsoft sẽ làm cho nó dễ dàng hơn với các lỗi hữu ích hoặc sửa lỗi rõ ràng này.
Joseph

6
Đối với những gì đáng để tôi gặp phải lỗi này nhưng cài đặt thư mục Bắt đầu trong thư mục của tôi không có dấu ngoặc kép, thay vào đó, đường dẫn được tham chiếu không tồn tại.
shufler

2
Tôi không sử dụng dấu ngoặc kép và vẫn nhận được vấn đề tương tự. @RayofCommand: bạn đã tìm ra giải pháp cho vấn đề này chưa.
Người dùng1551892 17/03/2016

9

Đối với tôi đó là "Bắt đầu vào" - Tôi đã sao chép các giá trị từ một máy chủ cũ hơn và cập nhật đường dẫn đến vị trí .exe mới, nhưng tôi quên cập nhật vị trí "bắt đầu" - nếu nó không tồn tại, bạn cũng nhận được lỗi này

Trích dẫn nhận xét của @ hans-passant từ trên xuống, bởi vì nó rất có giá trị để gỡ lỗi vấn đề này:

Chuyển đổi mã lỗi thành hex để nhận 0x8007010B. 7 làm cho nó một lỗi Windows. Điều này làm cho mã lỗi 010B 267. "Tên thư mục không hợp lệ". Chắc chắn, điều đó xảy ra.


7

Điều này có thể xảy ra vì nhiều hơn một lý do. Trong trường hợp của tôi, điều này xảy ra do một vấn đề quyền. Người dùng mà tác vụ đang chạy không có quyền ghi vào thư mục nhật ký nên đã thất bại với lỗi này.


3

Tôi đã có cùng một vấn đề, trên Windows7.

Tôi đã gặp lỗi 2147942667 và một báo cáo về việc không thể chạy c: \ windows \ system32 \ CMD.EXE. Tôi đã thử với và không có dấu ngoặc kép trong Script và Start-in và nó không có gì khác biệt. Sau đó, tôi đã thử thay thế tất cả các tham chiếu đường dẫn đến các ổ đĩa mạng được ánh xạ và bằng các tham chiếu UNC (\ Server1 \ Sharexx \ my_scripts \ run_this.cmd) và nó đã sửa nó cho tôi. Pat.


Điều này cuối cùng đã làm điều đó cho tôi là tốt. Tôi đã phải sử dụng "Sử dụng mạng" để lấy tên máy chủ và sau đó ping để lấy tên miền. Cuối cùng, đó là \ machine.domain.local \ app.exe. \\ Máy \ app.exe không hoạt động
greg

Đã làm điều đó cho tôi quá. Cảm ơn!
Jace

2

Để có câu trả lời chung chung hơn, hãy chuyển đổi giá trị lỗi thành hex, sau đó tra cứu giá trị hex tại Lỗi Bộ lập lịch tác vụ của Windows và Hằng số thành công


3
Chào Mike. Tôi đã sử dụng Windows Calculator trong chế độ Lập trình viên để chuyển đổi 2147942667sang HEX : 0x8007010B. Giá trị đó không xuất hiện trong liên kết bạn cung cấp. Chỉ cần FYI, tất nhiên.
jp2code 23/2/2015

4
Tôi chỉ Googled nó : 2147942667 in hex. Google cũng là một máy tính.
Baodad

0

Đối với tôi đó là "Bắt đầu vào" - Tôi vô tình để lại trong '.py' ở cuối tên chương trình của tôi. Và tôi đã quên viết hoa tên của thư mục trong ('Ứng dụng').


0

Đối với tôi, điều này là do biến môi trường PATH của người dùng, dường như không hoạt động mặc dù người dùng đã đúng, vì vậy tôi cần đưa toàn bộ đường dẫn thực thi vào trường chương trình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.