Nhiệm vụ theo lịch trình của Windows không hoàn thành với mã lỗi 0xc000013a


11

Tôi đang sử dụng Windows Server 2003 và có một tác vụ theo lịch trình không hoàn thành. Tác vụ được đặt để chạy Windows Command Script (.cmd) vào lúc 3 giờ chiều mỗi ngày. Kịch bản chạy một chương trình trích xuất một số dữ liệu từ cơ sở dữ liệu SQL Server và tải dữ liệu đó lên máy chủ FTP.

Mã lỗi được hiển thị trong cột "Kết quả cuối cùng" của thư mục tác vụ theo lịch là 0xc000013a. Một tìm kiếm nhanh của Google dẫn đến trang hỗ trợ của Microsoft này cho biết: Mã lỗi "C" phổ biến nhất là "0xC000013A: Ứng dụng bị chấm dứt do kết quả của CTRL + C".

Không ai được đăng nhập tại thời điểm tác vụ chạy, vì vậy không có ai xung quanh để nhấn CTRL + C. Tôi không chắc tôi hiểu những gì đang được nói ở đây trong tài liệu của Microsoft.

Tôi đã kiểm tra những thứ thô sơ - tác vụ theo lịch trình được bật, được lên lịch để chạy mỗi ngày và chỉ vào một tệp tồn tại ở một vị trí hợp lệ. Thật thú vị, khi tôi chạy tác vụ này theo cách thủ công (bằng cách chạy tập lệnh .cmd từ dòng lệnh hoặc bằng cách bấm chuột phải vào tác vụ và nhấp vào "Chạy"), tác vụ sẽ hoàn thành thành công.

Mã lỗi này có ý nghĩa gì và làm cách nào để tác vụ này chạy khi tôi không ở đó để buộc nó?


Cố gắng tự thêm mã thoát vào tập lệnh kết thúc (ví dụ exit 0). Nếu nó vẫn thất bại, nó tự thất bại. Nếu không, nó chỉ là một mã thoát không có thật do trình lập lịch tác vụ giải thích sai.
bjoster

Câu trả lời:


6

Khắc phục sự cố các tập lệnh theo lịch trình:

  1. Nếu bạn chưa có, hãy kiểm tra tệp nhật ký Tác vụ theo lịch , trong GUI trong Nâng cao > Xem Nhật ký . Tìm kiếm tệp cho " ***" để tìm các mục gần đây nhất và bạn có thể thấy thêm một chút thông tin lỗi.

  2. Xác định một tệp nhật ký để nắm bắt đầu ra và gửi cả lỗi tiêu chuẩn và lỗi tiêu chuẩn ở đó. Thay đổi bất kỳ tiếng vang TẮT nào thành tiếng vang BẬT để đảm bảo bạn không bỏ qua bất kỳ thông báo lỗi nào.
    Ví dụ: nếu tập lệnh của bạn được gọi ftp.data.cmdthì tác vụ theo lịch trình của bạn có thể trông như thế này,

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

  3. Là kịch bản treo? Có thể bộ lập lịch tác vụ đang hủy tập lệnh (do đó là mã lỗi CTRL + C) sau một khoảng thời gian được chỉ định. Thêm một vài trong số này tại các điểm chiến lược trong scipt của bạn,

    echo %DATE% %TIME%

  4. Bạn có chắc rằng tài khoản đang chạy tập lệnh có quyền / quyền truy cập vào mọi thứ trong tập lệnh không?

  5. Nếu bạn không thể có được niềm vui, hãy chạy lệnh này và đăng kết quả đầu ra ở đây, có lẽ chúng ta có thể bắt đầu với việc lập lịch trình,

    schtasks /query /v /fo LIST /s YOURSERVER


4

Tôi không thể trả lời câu hỏi trực tiếp vì tôi không biết cụ thể thông báo lỗi nghĩa là gì (cũng không phải cách khắc phục), nhưng nếu tôi đang cố gắng khắc phục sự cố, tôi sẽ thêm một vài ghi vào tệp nhật ký tại các điểm chiến lược trong kịch bản và sau thời gian dự kiến, xem điểm kiểm tra cuối cùng để chạy là gì.

Sự nghi ngờ của tôi sẽ là có một cái gì đó không thành công do thông tin đăng nhập mà tập lệnh đang chạy hoặc một cái gì đó trong tập lệnh cần một người dùng đã đăng nhập. Thu hẹp nơi mà trong kịch bản không thành công có thể giúp bạn tìm mã "vi phạm".


2

Tôi nhận ra đây là một bài viết cũ nhưng chúng rất hữu ích khi tìm kiếm giải pháp và có lẽ những gì tôi tìm thấy cũng hữu ích. Tôi đã sử dụng WinSCP trên Windows Server 2003 để tải lên máy chủ ftp và nhận được thông báo lỗi tương tự và tệp LênLgU.txt chỉ không đủ thời gian trong phần "Dừng tác vụ nếu nó cung cấp cho:" ngay cả khi tôi đã giao nhiệm vụ nhiều thời gian để tải lên

Nhìn vào Trình quản lý tác vụ tôi có thể thấy WinSCP.exe không xóa và tôi có hàng tấn các quy trình trong danh sách, vì vậy tôi đã tạo một tệp bó (taskkill / f / im woncp.exe) để giết bất kỳ quy trình đã mở nào và tôi có tệp bó đó chạy trước WinSCP và bây giờ nó hoạt động tốt.


2

Hôm nay tôi đã gặp vấn đề này trên một máy chủ từ xa và giải pháp là thay đổi cài đặt chạy từ "Chỉ chạy khi người dùng đăng nhập" thành "Chạy xem người dùng có đăng nhập hay không".

Với "Chỉ chạy khi người dùng đăng nhập", tác vụ sẽ khởi chạy một cửa sổ lệnh đã bị đóng khi phiên máy tính từ xa của tôi hết thời gian. Với "Chạy cho dù người dùng đã đăng nhập hay không", không có cửa sổ nào được hiển thị trong khi tác vụ chạy, do đó việc thực thi không dừng lại khi phiên máy tính từ xa của tôi kết thúc.


1

Tương tự như câu trả lời của cori, tôi khuyên bạn nên kiểm tra xem tác vụ theo lịch trình được thiết lập để chạy như thế nào, vì tôi đã thấy lỗi này xảy ra khi tài khoản người dùng đang chạy tác vụ không có quyền như người dùng đã đăng nhập


1

Nếu điều này xảy ra trước đây, có lẽ một tình trạng như mất mạng hoặc sự cố trên máy chủ khác có thể giải thích cho sự thất bại.


1

Tôi đã có cùng một lỗi và đó là do tệp bó tôi đang chạy đã nhắc một số tệp xóa bằng lệnh DEL. Vì không có người dùng trả lời Y / N để xử lý hàng loạt nên tác vụ theo lịch trình bị chấm dứt. Sau đây là thông báo tôi đã tìm thấy trong nhật ký tác vụ theo lịch trình của mình: "tác vụ đã bị chấm dứt. Hành động này được bắt đầu bởi quản trị viên hoặc bởi dịch vụ Lập lịch tác vụ (ví dụ: vì máy tính hiện không hoạt động)." Đề nghị của tôi là chạy tác vụ theo cách thủ công từ dấu nhắc lệnh để xem nó dừng ở đâu hoặc nhắc một số tương tác người dùng, sửa nó và tác vụ của bạn sẽ chạy tốt.


1

Nếu bạn đang cố chạy chương trình trong điều khiển Trình lập lịch tác vụ, System.En Môi trường. Hiện tại sẽ trả về C: \ Windows \ System32, KHÔNG phải nơi thực thi của bạn được đặt. Lỗi này có thể là một lỗi không tìm thấy tệp; Tôi đã cố đăng nhập vào thư mục con và nó không tồn tại trong cây System32.


0

Tại kịch bản của tôi điều này là rõ ràng. Nó xảy ra vì tôi đã "tạm dừng" ở cuối tệp bó và tác vụ theo lịch trình bị giới hạn trong 20 phút. Khi người dùng có mặt, hi có thể thấy dòng công việc. Khi tệp bó không bị chấm dứt bởi tác vụ theo lịch trình, sau 20 phút. Điều này gây ra 0xc000013a và nó ổn.


0

Tôi đã có cùng một vấn đề và khắc phục nó bằng cách thay đổi kích hoạt từ "Khởi động hệ thống" thành "Đăng nhập".


0

có cùng một vấn đề .. đã được khắc phục bằng cách chơi với người dùng đã đăng ký để chạy tác vụ theo lịch trình. cuối cùng, thay đổi tên miền là câu trả lời.

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.