Saya ingin menjadwalkan restart server satu kali, mis. Untuk menyelesaikan menginstal pembaruan di pagi hari. Bagaimana saya bisa melakukan ini dari baris perintah pada Windows 2012?
Pada Windows 2008, saya akan menggunakan at
perintah,
at 2am shutdown -r -f -c "restart"
dan mengambil sisa sore itu.
Tetapi pada Windows 2012, menjalankan perintah ini memberi tahu saya hal itu
The AT command has been deprecated. Please use schtasks.exe instead.
Jadi perintah yang setara dengan schtasks.exe mungkin
schtasks /create /sc once /tn restart /tr "shutdown - r -f ""restart""" /st 02:00
Selain sangat dilupakan, perintah ini memiliki kelemahan penting lainnya : perintah ini menjadwalkan tugas untuk jam 2 pagi hari ini — tidak banyak digunakan kecuali saya bangun jam 1 pagi untuk menjalankannya.
Menurut bantuan untuk schtasks.exe, /sd
saklar untuk pengaturan tanggal mulai tidak berlaku dengan /sc once
. Jadi, bahkan jika saya ingin mengetik tanggal besok dalam format mm / hh / tttt — dan saya tidak — saya tidak bisa melakukan ini.
Satu-satunya solusi yang mungkin saya temukan adalah di sini , di mana Kevin Traas menyarankan untuk membuat file batch untuk membuat tugas terjadwal sebelum tengah malam yang menunggu beberapa menit dan kemudian membuat tugas terjadwal lain untuk menjalankan perintah yang sebenarnya ingin Anda jalankan. Pintar, tapi tidak sedekat ini at
.
sumber
Jawaban:
The
shutdown
perintah itu sendiri memiliki parameter delay/t
yang menunda shutdown untuk sejumlah detik hingga 10 tahun. Jika Anda ingin menjadwalkan penghentian dalam 14 jam, katakanlah, Anda mungkin lariAnda juga dapat menambahkan alasan dengan
/d
parameter atau komentar dengan/c
; larishutdown /?
untuk detail.sumber
Meskipun dokumentasi,
/SD
parameter tampaknya kompatibel dengan/SC ONCE
. Tugas berhasil dibuat untuk dijalankan pada tanggal yang disediakan, pada waktu yang disediakan. (Diuji pada W8 dan W7)Selain itu, dokumentasi XP
schtasks.exe
untuk mengatakan/SD
parameter diperlukan saat menggunakan/SC ONCE
, jadi saya membayangkan ada cukup banyak skrip menggunakan kombinasi.Contoh:
Jika bertentangan dengan dokumentasi tidak cocok dengan Anda, pertimbangkan untuk membuat file XML secara langsung ( skema ada di sini ), yang pasti didukung dan pasti mendukung tugas yang dijadwalkan untuk dijalankan sekali di masa mendatang. Cara mudah untuk mendapatkan file yang tepat adalah dengan membuatnya di
mmc
snap Task Scheduler dan gunakan perintah ekspor .Contoh:
Perintah untuk mengimpor:
sumber
/sd
dukungannya. Itu menarik tentang impor XML juga — meskipun secara pribadi saya tidak peduli menentang dokumentasi. Jadi setidaknya ini mungkin — hanya saja, jauh lebih sulit daripada sebelumnyaat
./sd
tidak berfungsi dengan/sc once
di Windows Server 2008. HasilnyaERROR: Incorrect Start Date.
/SD 06/14/2013
.Saya akhirnya menciptakan
runat.ps1
untuk meniru beberapa fitur sederhanaat
, menggabungkan kebijaksanaan dari jawaban Mitch.Sintaksnya adalah
runat (time) (command)
, misJika Anda juga bernostalgia untuk masa lalu yang baik ketika Anda tidak perlu mengetik ...
... maka Anda dapat menginstalnya dengan menjalankan perintah powershell ini:
Atau Anda dapat mengunduh
runat.ps1
skrip secara manual di sini .sumber
Saya menggunakan ini dalam skrip untuk 2012 R2 dan berfungsi dengan baik; Ini akan membuat tugas harian yang me-restart server @ 4:30 pagi
Harap pastikan bahwa Anda menjalankan ini dari prompt CMD dengan hak administratif.
Andy
sumber
Hanya skrip PowerShell lain untuk secara sistematis me-reboot komputer pada hari berikutnya pada waktu yang ditentukan
sumber
Saya sarankan menggunakan perintah schtasks dengan parameter / f.
Menggunakan / f, jika ada tugas dengan nama yang sama, itu dimodifikasi.
Ini sangat berguna untuk menyebarkan tugas melalui skrip.
Contoh lengkap restart server jadwal:
Diambil dari: http://www.sysadmit.com/2016/09/windows-programar-apagado-o-reinicio-automatico.html
sumber
Jika tujuannya hanya untuk reboot setelah menginstal pembaruan, maka Anda dapat menggunakan modul PSWindowsUpdate untuk menginstal pembaruan. Anda dapat mengunduhnya dari sini . Setelah diinstal, cukup buka Powershell dan ketik
sumber
Skrip ini memungkinkan Anda menjadwalkan Restart beberapa server pada tanggal / waktu tertentu.
https://gallery.technet.microsoft.com/Schedule-restart-of-2c1131fb?redir=0
sumber