Bagaimana cara mematikan, memulai kembali, atau keluar dari Windows melalui file bat?

660

Saya telah menggunakan Remote Desktop Connection untuk masuk ke workstation. Tetapi dalam lingkungan ini, saya tidak dapat menggunakan opsi daya di Start Menu. Saya perlu cara alternatif untuk mematikan atau memulai kembali.

Bagaimana cara mengontrol status daya komputer saya melalui baris perintah?

Keng
sumber

Jawaban:

1165

Cara paling umum untuk menggunakan shutdownperintah adalah:

  • shutdown -s - Dimatikan.
  • shutdown -r - Mulai ulang.
  • shutdown -l - Log off.
  • shutdown -h - Hibernasi.

    Catatan: Ada perangkap umum di mana pengguna berpikir -hberarti "bantuan" (yang berfungsi untuk setiap program baris perintah lainnya ... kecuali shutdown.exe, di mana itu berarti "hibernasi"). Mereka kemudian menjalankan shutdown -hdan secara tidak sengaja mematikan komputer mereka. Hati-hati dengan itu.

  • shutdown -i- "Mode interaktif". Alih-alih melakukan tindakan, ini menampilkan dialog GUI.

  • shutdown -a - Membatalkan perintah shutdown sebelumnya.

Perintah di atas dapat dikombinasikan dengan opsi tambahan ini:

  • -f- Memaksa program untuk keluar. Mencegah proses penutupan agar tidak macet.
  • -t <seconds>- Mengatur waktu hingga shutdown. Gunakan -t 0untuk mematikan segera.
  • -c <message>- Menambahkan pesan penutupan. Pesan akan berakhir di Log Kejadian.
  • -y - Memaksa jawaban "ya" untuk semua pertanyaan mematikan.

    Catatan: Opsi ini tidak didokumentasikan dalam dokumentasi resmi apa pun. Itu ditemukan oleh pengguna StackOverflow ini .


Saya ingin memastikan beberapa jawaban yang benar-benar bagus juga disebutkan bersama dengan yang ini. Di sini mereka tanpa urutan tertentu.

Keng
sumber
188
Baca tentang menggunakan -f (for force) di jawaban berikutnya. Mengatakan orang yang tidak dan sekarang memiliki komputer macet pada shutdown di sisi lain dari planet ini selama akhir pekan (:
pasx
11
+1 saja yang saya gunakan /<switch>sebagai ganti -<switch>. Bagian bantuan juga digunakan /.
legends2k
Pengalaman saya: Menggunakan opsi -s (shutdown) di Remote Desktop (sebagaimana OP sebutkan) hanya mengakhiri desktop jarak jauh tetapi membiarkan mesin jarak jauh tidak tersentuh.
Heri
3
Saya menggunakan "-r" untuk Mesin Jarak Jauh. Jadi akan restart dan tidak perlu intervensi manual.
granadaCoder
6
Jika Anda menggunakan mesin jarak jauh, Anda mungkin juga ingin menambahkan -fopsi untuk memaksa reboot. Kalau tidak, sesi Anda bisa ditutup dan aplikasi yang keras kepala dapat menggantung sistem. Untuk memaksa reboot langsung: shutdown -t 0 -r -f. Untuk "memberi mereka beberapa waktu" pilihan yang lebih ramah, Anda dapat menggunakan ini: shutdown -t 30 -r. The -ftersirat oleh timeout. (dari usulan edit oleh Mateusz Konieczny )
Ole VV
375

Jika Anda menggunakan mesin jarak jauh, Anda mungkin juga ingin menambahkan opsi -f untuk memaksa reboot. Kalau tidak, sesi Anda bisa ditutup dan aplikasi yang keras kepala dapat menggantung sistem.

Saya menggunakan ini setiap kali saya ingin memaksa reboot langsung:

shutdown -t 0 -r -f

Untuk opsi "berikan waktu" yang lebih bersahabat, Anda dapat menggunakan ini:

shutdown -t 30 -r

Seperti yang Anda lihat di komentar, -f tersirat oleh batas waktu.

Brutus 2006 adalah utilitas yang menyediakan GUI untuk opsi ini.

JosephStyons
sumber
15
Membaca bantuan untuk penonaktifan pada Windows 8.1 Saya melihat: "Jika periode waktu lebih besar dari 0, parameter / f tersirat." Dan karena batas waktu default adalah 30 detik, saya pikir lebih baik memberi waktu untuk shutdown bersih dan kemudian shutdown paksa terjadi setelah batas waktu.
Zitrax
2
Itu poin yang bagus. Saya percaya ketika saya menulis ini, OS yang saya gunakan adalah Windows XP. Saya melihat bahwa komentar "/ f tersirat" ada di Windows 7 juga. Saya telah memodifikasi contoh sesuai.
JosephStyons
2
Secara default mereka memiliki 30 detik. Saya gunakan untuk segera: shutdown / r / t 0 dan untuk ramah: shutdown / r
dzampino
81

Tidak ada yang menyebutkan -mopsi untuk remote shutdown:

shutdown -r -f -m \\machinename

Juga:

  • The -rparameter menyebabkan reboot (yang biasanya apa yang Anda inginkan pada mesin remote, karena secara fisik mulai mungkin akan sulit).
  • The -fpilihan parameter memaksa reboot.
  • Anda harus memiliki hak yang sesuai untuk mematikan mesin jarak jauh, tentu saja.
Tidur
sumber
2
dapatkah nama mesin menjadi alamat IP? Yaitu, dapatkah Anda melakukan ini melalui internet?
mcmillab
Jika Anda dapat mengakses mesin melalui \\IP.AD.DR.ESS(yaitu port yang diperlukan terbuka dan Anda memiliki izin yang diperlukan), maka ya, ini harus bekerja melalui internet.
Timothy Zorn
Saya pertama kali mencoba dengan -r saja dan itu tidak berhasil karena saya ingin shutdown jarak jauh. Ini bekerja dengan shutdown -r -m. -Tidak diperlukan.
Dchris
38

Jawaban asli: Oktober 2008

Anda juga punya semua " rundll32.exe shell32.dll" seri:

(lihat pembaruan di bawah)

  • rundll32.exe user.exe,**ExitWindows** [Pematian Cepat Windows]
  • rundll32.exe user.exe,**ExitWindowsExec** [Mulai ulang Windows]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

tempat nsingkatan:

  • 0 - LOGOFF
  • 1 - SHUTDOWN
  • 2 - REBOOT
  • 4 - FORCE
  • 8 - POWEROFF

(dapat dikombinasikan -> 6 = 2 + 4 FORCE REBOOT)


Pembaruan April 2015 (6+ tahun kemudian):

1800 INFORMASI dengan ramah tunjukkan dalam komentar :

Jangan gunakan rundll32.exeuntuk tujuan ini. Ia mengharapkan bahwa fungsi yang Anda lewati pada baris perintah memiliki tanda tangan metode yang sangat spesifik - tidak cocok dengan tanda tangan metode ExitWindows.

Raymond CHEN menulis:

Fungsi tanda tangan yang diperlukan untuk fungsi yang dipanggil oleh rundll32.exeadalah:

void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
       LPSTR pszCmdLine, int nCmdShow);

Itu tidak menghentikan orang untuk menggunakan rundll32fungsi acak yang tidak dirancang untuk dipanggil oleh rundll32, suka user32 LockWorkStationatau user32 ExitWindowsEx.

(oops)

Tanda tangan fungsi aktual untuk ExitWindowsEx adalah:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

Dan untuk membuatnya sejernih kristal:

Rundll32 adalah sisa dari Windows 95, dan telah ditinggalkan sejak setidaknya Windows Vista karena melanggar banyak pedoman teknik modern.

VONC
sumber
3
apa perbedaan antara shutdown dan poweroff?
Asdfg
17
@ Asdfg hari ini? tidak ada Untuk NT4 dan sebelumnya, motherboard tidak selalu mendukung power off, hanya shutdown (windows benar-benar tertutup, tetapi PC masih di bawah daya listrik). Hanya mematikan daya (jika perangkat keras mendukungnya pada saat itu) menutup jendela dan memotong daya listrik. Hari ini, baik shutdown dan poweroff melakukan itu.
VonC
2
Jangan gunakan rundll32.exe untuk tujuan ini. Ia mengharapkan bahwa fungsi yang Anda lewati pada baris perintah memiliki tanda tangan metode yang sangat spesifik - tidak cocok dengan tanda tangan metode ExitWindows.
1800 INFORMASI
2
@ 1800 INFORMASI poin yang sangat bagus. Saya telah menulis ulang jawaban untuk memperjelas ini bukan opsi yang valid.
VonC
3
Agar adil, meskipun, benar-benar tidak masalah apa jenis kebocoran memori atau tumpukan korupsi yang Anda sebabkan jika Anda segera mematikan PC.
PRMan
10

Tip kecil lainnya: ketika pergi rute file batch, saya ingin dapat membatalkannya jika saya menjalankannya secara tidak sengaja. Jadi file batch memanggil shutdown tetapi membiarkan Anda pada command prompt sesudahnya.

@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r

Plus, karena itu pada timer, Anda mendapatkan sensasi yang sama seperti yang Anda lakukan saat berburu di The Oregon Trail .

Gavin
sumber
1
Anda dapat meletakkan jeda dalam file bath, dan kemudian batalkan perintah, urutan batalkan akan menjadi kunci apa pun
rsk82
@ rsk82, bisa lolos dengan mengetik apa pun adalah batasan malang dari salinan TRS-80 Oregon Trail saya juga, tapi terus terang saya selalu menganggapnya curang dan saudara saya akan marah setiap kali saya melakukannya. Hanya mengatakan: mengapa kamu ingin membuat marah saudaraku?
Gavin
7

Ketika dibuat ulang menjadi mesin (targetnya adalah Windows XP; saya tidak yakin tentang target Windows Vista), walaupun Shutdown pada menu mulai digantikan oleh Disconnect Session atau sesuatu seperti itu, harus ada yang disebut 'Windows Security' yang juga tidak hal yang sama dengan Ctrl+ Alt+ Endseperti yang ditunjukkan oleh Owen.

Carl
sumber
Saya dulu menggunakan metode itu tetapi tidak berfungsi lagi, perintah itu.
user742864
Saya juga memiliki gadget yang memiliki tombol untuk shutdown, restart, hibernate, kunci yang berfungsi di RDP.
user742864
7

Anda mungkin mengetahui hal ini, tetapi untuk berjaga-jaga: lebih mudah untuk mengetik shutdown -r(atau perintah apa pun yang Anda suka) ke dalam kotak "Jalankan" dan tekan enter.

Menghemat meninggalkan file batch di mana-mana.

Dean Sebaliknya
sumber
ya ... Saya hanya ingin memiliki klik dua kali duduk di sana ... itulah gunanya file -r bat juga; o)
Keng
17
hati-hati untuk tidak memasukkannya ke dalam program-> startup :)
Dean Agak
aw .. dan perilaku yang aneh akan diperoleh jika kode ditempatkan dalam file shutdown.bat. Cobalah!
:)
6

Saya akan menulis ini di Notepad atau WordPad untuk perintah dasar logoff:

@echo off
shutdown -l

Ini pada dasarnya sama dengan mengklik mulai dan keluar secara manual, tetapi itu hanya sedikit lebih cepat jika Anda memiliki file batch yang siap.

Peter Mortensen
sumber
5

Saya terlambat ke pesta, tetapi belum melihat jawaban ini. Ketika Anda tidak ingin menggunakan file batch atau ketikkan perintah. Anda bisa mengatur fokus ke desktop dan kemudian menggunakan Alt+ F4.

Windows akan menanyakan apa yang ingin Anda lakukan, pilih shutdown atau restart.

Untuk tangkapan layar dan bahkan video, lihat: https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp

msoft
sumber
3
@Eng, membaca masalah yang sebenarnya "Saya tidak dapat menggunakan fungsi shutdown / restart di menu Start" menurut saya Anda ingin tahu bagaimana melakukan itu. Baris perintah adalah satu solusi, keyboard adalah solusi lain. Mungkin membantu pengguna lain yang tersandung ke pertanyaan ini dan hanya ingin solusi mudah untuk mematikan atau memulai kembali.
msoft