Cara menjadwalkan tugas untuk dijalankan saat mematikan jendela

86

Bagaimana Anda menjadwalkan tugas di Windows XP untuk dijalankan saat Anda mematikan jendela. Sehingga saya ingin menjalankan program baris perintah sederhana yang saya tulis di c # setiap kali saya mematikan jendela. Sepertinya tidak ada opsi dalam tugas terjadwal untuk melakukan tugas ini saat komputer saya mati.

Crippeoblade
sumber

Jawaban:

92

Jalankan gpedit.msc (Kebijakan Lokal)

Konfigurasi Komputer -> Pengaturan Windows -> Skrip -> Shutdown -> Properties -> Add

Dan Williams
sumber
28
Jika Anda ingin skrip batch dijalankan di Logoff, saya menemukan referensi file .bat secara langsung tidak berfungsi. Namun, jika saya menggunakan C:\Windows\System32\cmd.exesebagai Nama Skrip dan /C C:\path\to\batch\script.batsebagai Parameter Skrip , itu bisa.
Dan Stevens
6
PERINGATAN: Skrip startup dan shutdown kebijakan grup tidak dijalankan, saat menggunakan fastboot (diaktifkan secara default di windows 8 dan lebih tinggi). Dalam hal ini, hanya restart atau force shutdown (dari command prompt) yang benar-benar mematikan komputer. Dalam semua kasus lainnya (start menu shutdown), kernel komputer hibernasi, dan diaktifkan kembali saat boot, dan skrip startup dan shutdown GPO diabaikan.
voji
@voji: Apakah ini juga berlaku untuk Windows Server?
sampathsris
bagaimana kalau restart?
dangalg
ini sepertinya tidak berjalan sama sekali di Server Core 1909
gordy
41

Selain jawaban Dan Williams, jika Anda ingin menambahkan skrip Startup / Shutdown , Anda perlu mencari Pengaturan Windows di bawah Konfigurasi Komputer . Jika Anda ingin menambahkan skrip Logon / Logoff , Anda perlu mencari Pengaturan Windows di bawah Konfigurasi Pengguna .

Jadi untuk mengulangi apa yang Dan katakan dengan informasi ini disertakan,

Untuk Startup / Shutdown:

  1. Jalankan gpedit.msc (Kebijakan Lokal)
  2. Konfigurasi Komputer -> Pengaturan Windows -> Skrip -> Startup atau Shutdown -> Properties -> Add

Untuk Logon / Logoff:

  1. Jalankan gpedit.msc (Kebijakan Lokal)
  2. Konfigurasi Pengguna -> Pengaturan Windows -> Skrip -> Logon atau Logoff -> Properti -> Tambah

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

Brett Pennings
sumber
2
Ini adalah jawaban yang lebih baik. Saat Anda membuka GPEditor, ini menunjukkan dua node seperti yang Anda gambarkan. Karena kedua node memiliki opsi Pengaturan Windows maka jawaban yang diterima kurang jelas daripada jawaban Anda. Terima kasih atas tipnya. Sangat membantu.
Seth Spearman
34

Bagi mereka yang lebih suka menggunakan Penjadwal Tugas, dimungkinkan untuk menjadwalkan tugas untuk dijalankan setelah restart / shutdown telah dimulai dengan mengatur tugas untuk dijalankan setelah peristiwa 1074 di log Sistem di Peraga Peristiwa telah dicatat. Namun, ini hanya bagus untuk tugas yang sangat singkat, yang akan berjalan selama sistem di-restart / dimatikan, yang biasanya hanya beberapa detik.

  • Dari Penjadwal Tugas:

    Mulai tugas: Pada sebuah acara
    Log:
    Sumber Sistem : USER32
    EventID: 1074

  • Dari prompt perintah:

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

Komentar: opsi / ec tersedia dari Windows Vista dan yang lebih baru. (terima kasih @ t2d)

Harap dicatat bahwa status tugas bisa jadi:

Operasi yang diminta tidak dilakukan karena pengguna belum masuk ke jaringan. Layanan yang ditentukan tidak ada. (0x800704DD)

Namun, itu tidak berarti bahwa itu tidak berjalan.

Oz Edri
sumber
Terima kasih atas tipnya! @Oz, Apakah ini akan berjalan saat restart serta shutdown? Kasus yang saya coba tutupi adalah Pembaruan Windows memaksa restart ...
Erik Eidt
Ya, karena peristiwa ini dicatat saat restart / shutdown.
Oz Edri
Harap dicatat, bahwa argumen /ec systemtidak ada, tetapi disebut /ru system. lihat support.microsoft.com/en-us/kb/814596#bookmark-4
t2d
@ t2d, sementara / ec ada di versi yang lebih baru, / ru mengacu pada hal yang sama sekali berbeda. EC memungkinkan Anda untuk menentukan saluran acara, sementara ru memungkinkan Anda untuk menjalankan sebagai pengguna lain. Meskipun demikian, terima kasih atas tanggapan Anda. Saya akan mengedit posting saya sesuai.
Oz Edri
1
Ada kesalahan ketik pada pengubah dalam contoh Anda. Seharusnya ... /mo *[system/eventid=1074], tidak.../mo *[system/evendid=1074]
uji
4

Salah satu solusinya mungkin dengan menulis file batch sederhana untuk menjalankan program kemudian mematikan komputer.

Anda dapat mematikan dari baris perintah - sehingga skrip Anda bisa jadi cukup sederhana:

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

Jika Anda menjalankan GPEdit.MSC, Anda dapat pergi ke Computer Configuration -> Windows Settings -> Scripts, dan menambahkan skrip startup / shutdown. Ini bisa berupa file batch sederhana, atau bahkan EXE lengkap. Anda juga dapat menyesuaikan konfigurasi pengguna untuk skrip logon dan logoff di alat yang sama ini. Alat ini tidak tersedia di Windows XP Home.

Kibbee
sumber
1

Apa yang dapat saya sarankan lakukan adalah membuat pintasan ke file .bat (misalnya di desktop Anda) dan ketika Anda ingin mematikan komputer Anda (dan menjalankan file .bat) klik pada pintasan yang Anda buat. Setelah melakukan ini, edit file .bat dan tambahkan baris kode ini ke bagian akhir atau jika diperlukan:

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

Apa ini

  1. Menjalankan proses mematikan
  2. Menampilkan peringatan
  3. Memaksa semua proses yang berjalan untuk berhenti
  4. Jalankan segera
Matthew Smith
sumber
1

Di Windows 10 Pro, file batch dapat didaftarkan; solusi untuk mendaftarkan cmd.exe dan menentukan file bat sebagai param tidak diperlukan. Saya baru saja melakukan ini, mendaftarkan skrip shutdown dan skrip startup (boot), dan berhasil.

Wo'O Ideafarm
sumber
0

Saya juga harus mengaktifkan "Tentukan waktu tunggu maksimum untuk skrip kebijakan grup" dan "Tampilkan instruksi dalam skrip shutdown saat dijalankan" agar berfungsi untuk saya seperti yang saya jelaskan di sini .

Roald
sumber