Cách lập lịch chạy tác vụ khi tắt cửa sổ


86

Làm thế nào để bạn lên lịch một tác vụ trong Windows XP để chạy khi bạn tắt cửa sổ. Vì vậy, tôi muốn chạy một chương trình dòng lệnh đơn giản mà tôi đã viết trong c # mỗi khi tôi đóng cửa sổ. Dường như không có tùy chọn nào trong các tác vụ đã lên lịch để thực hiện tác vụ này khi máy tính của tôi tắt.

Câu trả lời:


92

Thực thi gpedit.msc (Chính sách cục bộ)

Cấu hình máy tính -> Cài đặt Windows -> Tập lệnh -> Tắt máy -> Thuộc tính -> Thêm


28
Nếu bạn muốn một tập lệnh hàng loạt chạy tại Logoff, tôi thấy việc tham chiếu trực tiếp tệp .bat không hoạt động. Tuy nhiên, nếu tôi sử dụng C:\Windows\System32\cmd.exelàm Tên tập lệnh/C C:\path\to\batch\script.batlàm Tham số tập lệnh , thì nó đã đúng.
Dan Stevens,

6
WARINING: Các thao tác khởi động và tắt chính sách nhóm không được thực thi khi sử dụng fastboot (được bật theo mặc định trong windows 8 trở lên). Trong trường hợp này, chỉ khởi động lại hoặc buộc tắt máy (từ dấu nhắc lệnh) mới thực sự tắt máy tính. Trong tất cả các trường hợp khác (tắt menu bắt đầu), hạt nhân máy tính ở chế độ ngủ đông và được phục hồi khi khởi động, đồng thời bỏ qua các bước khởi động và tắt GPO.
voji

@voji: Điều này có đúng với Windows Server không?
sampathsris

làm thế nào về việc khởi động lại?
dangalg

những thứ này dường như không chạy trên Server Core 1909
gordy

40

Ngoài câu trả lời của Dan Williams, nếu bạn muốn thêm tập lệnh Khởi động / Tắt máy , bạn cần tìm Cài đặt Windows trong Cấu hình Máy tính . Nếu bạn muốn thêm tập lệnh Đăng nhập / Logoff , bạn cần tìm Cài đặt Windows trong Cấu hình Người dùng .

Vì vậy, để nhắc lại những gì Dan đã nói với thông tin bao gồm,

Đối với Khởi động / Tắt máy:

  1. Chạy gpedit.msc (Chính sách cục bộ)
  2. Cấu hình máy tính -> Cài đặt Windows -> Tập lệnh -> Khởi động hoặc Tắt máy -> Thuộc tính -> Thêm

Đối với Đăng nhập / Logoff:

  1. Chạy gpedit.msc (Chính sách cục bộ)
  2. Cấu hình người dùng -> Cài đặt Windows -> Tập lệnh -> Đăng nhập hoặc Logoff -> Thuộc tính -> Thêm

Nguồn: http://technet.microsoft.com/en-us/library/cc739591(WS.10).aspx


2
Đây là câu trả lời tốt hơn. Khi bạn mở GPEditor, nó sẽ hiển thị hai nút như bạn mô tả. Vì cả hai nút đều có tùy chọn Cài đặt Windows nên câu trả lời được chấp nhận ít rõ ràng hơn câu trả lời của bạn. Cảm ơn vì tiền hỗ trợ. Rất hữu ích.
Seth Spearman

34

Đối với những người thích sử dụng Trình lập lịch tác vụ, có thể lên lịch tác vụ chạy sau khi khởi động lại / tắt máy bằng cách đặt tác vụ chạy sau khi sự kiện 1074 trong Nhật ký hệ thống trong Trình xem sự kiện đã được ghi. Tuy nhiên, nó chỉ tốt cho tác vụ rất ngắn, sẽ chạy miễn là hệ thống đang khởi động lại / tắt, thường chỉ mất vài giây.

  • Từ Trình lập lịch tác vụ:

    Bắt đầu tác vụ: Trên một sự kiện
    Nhật ký:
    Nguồn hệ thống : USER32
    EventID: 1074

  • Từ dấu nhắc lệnh:

    schtasks / create / tn "taskname" / tr "task file" / sc onevent / ec system / mo * [system / eventid = 1074]

Nhận xét: tùy chọn / ec có sẵn từ Windows Vista trở lên. (xin cảm ơn @ t2d)

Xin lưu ý rằng trạng thái nhiệm vụ có thể là:

Thao tác được yêu cầu không được thực hiện vì người dùng chưa đăng nhập vào mạng. Dịch vụ được chỉ định không tồn tại. (0x800704DD)

Tuy nhiên, nó không có nghĩa là nó không chạy.


Cảm ơn vì tiền hỗ trợ! @Oz, Điều này có chạy khi khởi động lại cũng như tắt máy không? Các trường hợp tôi đang cố gắng để che là Windows Update lực lượng khởi động lại ...
Erik Chỉ cần nạp

Đúng vậy, vì sự kiện này được ghi lại khi khởi động lại / tắt máy.
Oz Edri

Xin lưu ý rằng đối số /ec systemkhông tồn tại, nhưng nó được gọi /ru system. xem support.microsoft.com/en-us/kb/814596#bookmark-4
t2d

@ t2d, trong khi / ec tồn tại trong các phiên bản mới hơn, / ru đề cập đến một thứ hoàn toàn khác. EC cho phép bạn chỉ định kênh sự kiện, trong khi ru cho phép bạn chạy với tư cách người dùng khác. Tuy nhiên, cảm ơn bạn đã bình luận. Tôi sẽ chỉnh sửa bài viết của mình cho phù hợp.
Oz Edri

1
Có một lỗi đánh máy trong công cụ sửa đổi trong ví dụ của bạn. Nó phải là ... /mo *[system/eventid=1074], không.../mo *[system/evendid=1074]
testworks

4

Một cách giải quyết có thể là viết một tệp hàng loạt đơn giản để chạy chương trình sau đó tắt máy tính.

Bạn có thể tắt từ dòng lệnh - vì vậy tập lệnh của bạn có thể khá đơn giản:

c:\directory\myProgram.exe
C:\WINDOWS\system32\shutdown.exe -s -f -t 0

4

Nếu chạy GPEdit.MSC, bạn có thể đi tới Cấu hình máy tính -> Cài đặt Windows -> Tập lệnh và thêm tập lệnh khởi động / tắt máy. Đây có thể là các tệp hàng loạt đơn giản hoặc thậm chí là các EXE hoàn chỉnh. Ngoài ra, bạn có thể điều chỉnh cấu hình người dùng cho các tập lệnh đăng nhập và đăng xuất trong cùng một công cụ này. Công cụ này không có sẵn trong WIndows XP Home.




1

Những gì tôi có thể đề xuất làm là tạo một lối tắt đến tệp .bat (ví dụ: trên máy tính của bạn) và khi bạn muốn tắt máy tính của mình (và chạy tệp .bat), hãy nhấp vào lối tắt bạn đã tạo. Sau khi thực hiện việc này, hãy chỉnh sửa tệp .bat và thêm dòng mã này vào cuối hoặc khi cần:

c:\windows\system32\shutdown -s -f -t 00

Nó là gì

  1. Chạy quá trình tắt máy
  2. Hiển thị cảnh báo
  3. Buộc dừng tất cả các quy trình đang chạy
  4. Thực thi ngay lập tức

1

Trên Windows 10 Pro, tệp hàng loạt có thể được đăng ký; giải pháp thay thế đăng ký cmd.exe và chỉ định tệp dơi làm thông số là không cần thiết. Tôi vừa làm điều này, đăng ký cả tập lệnh tắt máy và tập lệnh khởi động (khởi động) và nó đã hoạt động.


0

Tôi cũng phải bật "Chỉ định thời gian chờ tối đa cho các tập lệnh chính sách nhóm" và "Hiển thị hướng dẫn trong các tập lệnh tắt khi chúng chạy" để làm cho nó hoạt động cho tôi như tôi giải thích ở đây .

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.