Bagaimana saya bisa mematikan komputer dari menu Command Prompt / Run?

144

Saya tahu bahwa hampir semua yang ada di Windows, seperti membuka aplikasi apa pun, dapat dilakukan dari command prompt atau dari menu Run .

Bagaimana saya bisa meletakkan komputer saya untuk tidur atau menutupnya ? Apa perintah untuk itu?

Lazer
sumber
Ketik shutdown pada command prompt dan lihat output bekerja di XP dan di atas dari apa yang saya tahu.
user10547

Jawaban:

128

Anda akan menemukan shutdown.exeuntuk menjadi teman Anda.

Perintah praktis lainnya lihat posting ini :

Sleep Computer (baca selengkapnya di https://superuser.com/a/463652/249349 )

Kunci Workstation

Hibernate Computer

see answers by Scott Chamberlain and Eric L

Nyalakan kembali Komputer

Shutdown.exe -r -t 00

Matikan komputer

Shutdown.exe -s -t 00

EDIT / PEMBARUAN:

Tampaknya tidur komputer bermasalah jika hibernasi dihidupkan.

Menyalin dari jawaban lain:

Anda dapat mencoba PsShutdown atau:

Perintah rundll32.exe powrprof.dll, SetSuspendState 0,1,0 untuk tidur sudah benar - namun, itu akan hibernasi alih-alih tidur jika Anda tidak mematikan hibernasi.

Berikut cara melakukannya:

Buka Start Menu dan buka Command Prompt yang ditinggikan dengan mengetikkan cmd.exe, mengklik kanan dan memilih Run as administrator. Ketikkan perintah berikut:

powercfg -hibernate off
brandstaetter
sumber
21
Masalahnya rundll32.exe powrprof.dll,SetSuspendState 0,1,0adalah IT TIDAK BEKERJA sebagaimana mestinya. SetSuspendStateakan menempatkan komputer dalam semacam mode Tidur Hibrida / Hibernasi. Saat Anda menggunakan tombol Tidur dari menu mulai, Anda dapat melanjutkan komputer dari tidur dengan menekan tombol apa saja pada keyboard Anda. Menggunakan baris perintah ini, make adalah melanjutkan jauh lebih lambat karena keadaan tidur yang lebih dalam dan itu dapat dilanjutkan hanya jika Anda menekan tombol daya di komputer Anda. Itu tidak dapat dilanjutkan untuk penekanan tombol. Jadi ... bagaimana Anda membuatnya tidur seperti dalam siaga normal - dapat dilanjutkan dengan menekan tombol?
Corporate Geek
6
Downvotes sama sekali tidak beralasan. Jawaban Anda tidak menjawab pertanyaan dengan sendirinya. Pembaca harus dapat mengumpulkan informasi yang cukup berguna dari jawaban untuk menyelesaikan masalah tanpa harus mengikuti tautan apa pun ke situs lain yang mungkin rusak atau mati.
Iszi
5
Diturunkan karena tidak menjawab pertanyaan yang diajukan: bahkan di halaman tertaut, metode yang dijelaskan untuk mematikan mesin tidak akan berfungsi ketika hibernasi diaktifkan.
akurtser
4
Saya telah menguji perintah Tidur juga, dan juga dapat mengkonfirmasi bahwa itu tidak berfungsi sebagaimana dimaksud. Ini tidak ada hubungannya dengan membenci / trolling, tetapi jika perintah itu tidak berhasil, maka pertanyaannya tidak terjawab, karena itu adalah bagian utama dari pertanyaan.
ditanggapi kembali
6
rundll32tidak boleh digunakan untuk menelepon SetSuspendStatekarena tanda tangannya tidak sesuai dengan yang diharapkan oleh rundll32. Lihat: support.microsoft.com/en-us/kb/164787 dan msdn.microsoft.com/en-us/library/windows/desktop/... Parameter pertama mendapat sampah alih-alih nilai FALSE. Itu alasannya, mengapa hibernasi bukannya tidur.
SergeyT
86

Metode yang diposting oleh orang lain tidak berfungsi dengan benar jika komputer memiliki hibernasi diaktifkan, komputer tidak akan bangun di Keyboard atau, yang lebih penting, tidak bangun pada tugas yang dijadwalkan.

Salah satu alat Microsoft Sysinternals adalah PsShutdown menggunakan perintah psshutdown -d -t 0itu akan tidur dengan benar, tidak hibernasi , komputer

Scott Chamberlain
sumber
Membutuhkan elevasi ke Administrator
dsmtoday
3
Bekerja untuk saya di Windows 10 x64, Build 1709.
Hans Løken
1
Bekerja untuk saya di Win10x64 Versi 1709, jalankan cmd dengan akun pengguna administrator tetapi tanpa run as administratoropsi klik kanan
Viktor Carlson
3
Bekerja untuk saya dengan Windows 10 (bahkan bukan sebagai admin).
DAB
3
Berfungsi di Windows 10 x64 Build 15063. Kita perlu mengunduh PsTools dan menyalin psshutdown.exedari archiv ke mis C:\Windows\System32agar dapat menggunakan perintah tanpa pathprefix. Seseorang kemudian perlu mengeksekusi psshutdown -d -t 0dengan hak admin untuk menunda. Ini harus menjadi jawaban yang diterima , karena itu menjawab pertanyaan, bahkan jika tidak dengan alat yang telah diinstal Windows.
Arch Linux Tux
19

Perintah rundll32.exe powrprof.dll,SetSuspendState 0,1,0untuk tidur benar - namun, itu akan hibernasi alih-alih tidur jika Anda tidak mematikan hibernasi.

Berikut cara melakukannya:

Buka Start Menu dan buka Command Prompt yang ditinggikan dengan mengetik cmd.exe, mengklik kanan dan memilih Run as administrator . Ketikkan perintah berikut:

powercfg -hibernate off
Taji
sumber
5
Saya pikir itu adalah jawaban pertama yang benar-benar menyelesaikannya. Saya meletakkan dua baris ini (-hapus dari dulu) dan membuat file batch yang membuat pc tertidur. Satu masalah dengan itu adalah bahwa pada dasarnya mematikan hibernasi, yang bukan apa yang saya inginkan, jadi untuk memperbaikinya, saya menambahkan tugas yang dijadwalkan dipicu pada "pada workstation unlock" untuk menghidupkan kembali hibernasi dengan batch yang hanya memiliki jalur " matikan powercfg ". Lalu saya mengkonfigurasi kunci pendek untuk file batch pertama. Selesai. Bekerja seperti pesona, terima kasih!
akurtser
Itu sangat aneh. Hibernasi perlu dimatikan sebelum Anda dapat tidur dengan benar? Apakah ada nama untuk status tidur / ditangguhkan hibrida powrprof.dllsaat hibernasi aktif? Hanya ingin tahu. Apakah itu terkait dengan salah satu negara ACPI?
Ehtesh Choudhury
4
rundll32tidak boleh digunakan untuk menelepon SetSuspendStatekarena tanda tangannya tidak sesuai dengan yang diharapkan oleh rundll32. Lihat: support.microsoft.com/en-us/kb/164787 dan msdn.microsoft.com/en-us/library/windows/desktop/... Parameter pertama mendapat sampah alih-alih FALSE. Itu alasannya, mengapa hibernasi bukannya tidur.
SergeyT
Tidak bekerja di bawah Windows 10
T3rm1
@ EhteshChoudhury, masalah dalam hal ini adalah bahwa parameter Rundll32 salah dan benar-benar tidak cocok, sehingga mereka benar-benar memanggil SetSuspendState dengan parameter: Hibernate: TRUE, ForceCritical: TRUE, DisableWakeEvents: TRUE. Bit terakhir menjelaskan mengapa Anda tidak dapat membangunkan PC dengan apa pun selain tombol daya. Ini hanya kebetulan bahwa mencoba hibernasi ketika dinonaktifkan akan membuat PC Anda tertidur di Win7, dan mungkin mengapa itu tidak berhasil bagi sebagian orang.
SilverbackNet
10

NirCmd bekerja pada Windows 8 (saya berasumsi itu juga berfungsi dengan Windows 7) → http://www.nirsoft.net/utils/nircmd.html
Perintahnya adalah standby, tetapi ini membuat komputer tidur.

nircmd.exe standby

Jika Anda mengaktifkan hybrid sleep, itu akan berhasil; yaitu, itu membuat komputer tidur dan menyalin memori ke disk jika terjadi kehilangan daya.

Eric L.
sumber
1
Ini berfungsi tanpa harus naik ke Administrator. Bekerja dengan atau tanpa hibernasi diaktifkan. Bekerja seperti yang diharapkan dengan tidur hibrida. Solusi yang bagus untuk Win10.
dsmtoday
3

Lihat utilitas gratis Wizmo , yang dapat melakukan banyak hal.
Perintah yang Anda cari mungkin:

wizmo standby

harrymc
sumber
1
Wizmo memiliki masalah yang sama dengan rundll32.exe powrprof.dll,SetSuspendState 0,1,0- menempatkan komputer dalam
mode
2
Tidak, karena Vista sebenarnya menempatkan komputer dalam Hybrid Sleep . Jika Anda tidak menginginkan ini, maka Matikan Tidur Hibrida .
harrymc
1
wizmo blackout bekerja di windows 8.1, 10. HEBAT !!!!!!!!!!!!!
YumYumYum
Wizmo bekerja dengan baik. Sayangnya pemindai virus perusahaan saya menghapusnya karena mengandung beberapa urutan yang membuat McAfee berpikir itu mengandung trojan .
bastian
@bastian: Mcafee selalu menjadi berita buruk bagi seorang penulis aplikasi (dari pengalaman pribadi).
harrymc
3

Saya telah membuat pintasan untuk rundll32.exe powrprof.dll,SetSuspendState 0,1,0(juga mencoba dengan 0,0,0), tetapi menjalankan pintasan sepertinya membuat PC saya hibernasi. Saya tidak bisa membangunkan PC menggunakan keyboard; Saya harus menekan tombol power, dan PC menunjukkan pesan posting mainboard, dll.

Setelah membaca dokumen Windows API , saya membuat program yang sangat sederhana dengan hanya 3 baris pengetikan. Saya telah mengunggah file yang dapat dieksekusi yang saya kompilasi ke halaman ini (klik "SleepTest.exe") , tetapi file ini dapat dihapus setelah beberapa saat (ini adalah situs hosting file gratis yang baru saja saya temukan dengan pencarian cepat Google).

Jika Anda tidak mempercayai saya (yang benar-benar baik-baik saja) atau file telah dihapus, Anda dapat mengkompilasi kode sendiri, Tentu saja. Anda perlu menambahkan "PowrProf.lib" ke dependensi tambahan dari Linker.

#include "stdafx.h"
#include "windows.h" <-- Added this to make it work on Windows.
#include "PowrProf.h" <-- Added this to use the sleep function.

int main()
{
    SetSuspendState(FALSE, FALSE, FALSE); <-- Added this actual call.
    return 0;
}

rundll32.exe powrprof.dll,SetSuspendState 0,1,0tampaknya melakukan hal yang sama, tetapi entah bagaimana, program di atas tidak menempatkan komputer ke hibernasi. Saya dapat membangunkan PC secara instan (tidak ada pesan pos papan utama, dll) dengan menekan tombol apa saja pada keyboard.

Sayuran Sialan
sumber
2

Anda dapat memulai opsi penangguhan atau hibernasi dari baris perintah seperti yang ditentukan di bawah ini dan dirujuk dalam artikel ini .

%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState

Jika komputer Anda diatur untuk memungkinkan hibernasi maka perintah di atas akan memulai hibernasi. Jika fitur hibernasi dinonaktifkan, maka itu akan memasuki kondisi siaga. Seperti yang telah dijawab oleh pengguna lain sebelumnya, shutdown.exe /?akan memberikan banyak opsi mematikan.

BlueDevil
sumber
1
rundll32tidak boleh digunakan untuk menelepon SetSuspendStatekarena tanda tangannya tidak sesuai dengan yang diharapkan oleh rundll32. Lihat: support.microsoft.com/en-us/kb/164787 dan msdn.microsoft.com/en-us/library/windows/desktop/... Parameter pertama mendapat sampah alih-alih FALSE, jadi selalu hibernasi alih-alih pergi ke tidur.
SergeyT
1

Anda harus terlebih dahulu menonaktifkan Hibernate di windows dan kemudian menempatkan komputer dalam kondisi Sleep . Gunakan dua perintah berikut:

powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

dan untuk melakukan tindakan terbalik, Hibernasi komputer, gunakan perintah di bawah ini:

powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
Mohsen Abasi
sumber
3
rundll32tidak dimaksudkan untuk menelepon SetSuspendStatedan tidak boleh digunakan untuk ini. Parameter pertama mendapat sampah, bukan nilai yang benar. Jadi selalu hibernasi bukannya tidur (jika Anda belum menonaktifkan hibernasi sama sekali).
SergeyT
@SergeyT Tampaknya berfungsi untuk saya (setelah menonaktifkan hibernasi); apakah Anda mengatakan ini akan merusak windows?
moondra
Ini merusak stack (karena rundll32 mengharapkan tanda tangan panggilan yang berbeda, sehingga hal-hal yang muncul dari stack yang belum benar-benar diletakkan di sana). Ini mengarah pada perilaku yang tidak terduga.
imoatama
@imoatama penemuan yang bagus ...
masterxilo
1

Inilah artikel tentang cara menggunakan CLI untuk mematikan.

Microsoft menyediakan PsTools yang memberi Anda shutdown CLI bersama dengan alat lain yang bermanfaat. Anda bisa mendapatkannya di sini .

menonton
sumber
1

hanya SLEEPER CEPAT yang berfungsi untuk saya (berfungsi di Windows 7,8,10).

kode sumber ps tersedia di sini .

T.Todua
sumber
1
Apakah ada kemungkinan Anda dapat memberikan tautan ke situs sebenarnya tempat Anda mendapatkan file itu? Menautkan langsung ke file unduhan, terutama saat menggunakan penyingkat URL, dapat membuat file tersebut tampak mencurigakan karena merupakan taktik yang sering digunakan oleh penulis malware.
Mokubai
ok, saya telah memperbarui tautan ke situs resmi.
T.Todua
1

Jika Anda memiliki Python (dengan pywin32) yang tersedia, Anda juga dapat memanggil fungsi SetSuspendState secara langsung dengan:

import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)

Ini dapat dengan mudah dimasukkan ke dalam file batch atau semacam pintasan seperti:

pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"

Jadi, jika Anda tidak memiliki file .py yang terkait dengan juru bahasa, Anda cukup mengklik tautannya.

dash-tom-bang
sumber
1

Bagian penutupan pertanyaan jelas untuk semua orang.
shutdown.exe /?menunjukkan semua pilihan untuk shutdown / restart / opsi lanjutan boot / boot firmware.

Tetapi saya melihat begitu banyak pukulan yang dilemparkan tentang bagian Tidur.
Semua orang mendapatkannya yang rundll32.exetidak boleh digunakan untuk memanggil fungsi acak dan itu hanya berfungsi di sini untuk hibernasi sepenuhnya karena kebetulan. Tapi itulah sifat Windows - sebuah kotak hitam yang telah disodok orang dan menemukan ratusan solusi untuk menyelesaikan pekerjaan (berteriak-teriak ke dostips).

Ada begitu banyak solusi " tepat " yang mengusulkan alat eksternal , namun saya tidak dapat menemukan skrip batch asli (hybrid / pinvoke / apa pun) , bahkan jika pertanyaan ini tetap aktif selama bertahun-tahun.
Jadi, inilah power_sleep.bat sederhana saya :

@echo off &mode 32,2 &color cf &title Power Sleep
set "s1=$m='[DllImport ("Powrprof.dll", SetLastError = true)]"
set "s2=static extern bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);"
set "s3=public static void PowerSleep(){ SetSuspendState(false, false, false); }';"
set "s4=add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
set "ps_powersleep=%s1%%s2%%s3%%s4%" 
call powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -Command "%ps_powersleep:"=\"%"
exit

Itu bahkan berfungsi sebagai perintah satu baris besar:

powershell.exe -C "$m='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(bool hibernate,bool forceCritical,bool disableWakeEvent);public static void PowerSleep(){SetSuspendState(false,false,false); }';add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
AveYo
sumber