Làm cách nào để đặt máy tính ngủ từ menu Command Prompt / Run?


144

Tôi biết rằng hầu hết mọi thứ trên Windows, như mở bất kỳ loại ứng dụng nào, đều có thể được thực hiện từ dấu nhắc lệnh hoặc từ menu Run .

Làm thế nào tôi có thể đặt máy tính của tôi để ngủ hoặc tắt nó ? Lệnh cho điều đó là gì?


Gõ tắt trên dấu nhắc lệnh và xem đầu ra hoạt động trên XP trở lên từ những gì tôi có thể nói.
dùng10547

Câu trả lời:


128

Bạn sẽ tìm thấy shutdown.exeđể trở thành bạn của bạn.

Các lệnh tiện dụng khác xem bài này :

Máy tính ngủ (đọc thêm tại https://superuser.com/a/463652/249349 )

Khóa máy trạm

Máy tính ngủ đông

see answers by Scott Chamberlain and Eric L

Khởi động lại máy tính

Shutdown.exe -r -t 00

Tắt máy tính

Shutdown.exe -s -t 00

CHỈNH SỬA / CẬP NHẬT:

Có vẻ như việc ngủ máy tính là có vấn đề nếu ngủ đông được bật.

Sao chép từ các câu trả lời khác:

Bạn có thể thử PsShutdown hoặc:

Lệnh rundll32.exe powrprof.dll, SetSuspendState 0,1,0 cho giấc ngủ là chính xác - tuy nhiên, nó sẽ ngủ đông thay vì ngủ nếu bạn không tắt chế độ ngủ đông.

Đây là cách để làm điều đó:

Chuyển đến Menu Bắt đầu và mở Dấu nhắc Lệnh nâng cao bằng cách nhập cmd.exe, nhấp chuột phải và chọn Chạy với tư cách quản trị viên. Gõ lệnh sau:

powercfg -hibernate off

21
Vấn đề rundll32.exe powrprof.dll,SetSuspendState 0,1,0là CNTT KHÔNG LÀM VIỆC như bình thường. SetSuspendStatesẽ đưa máy tính vào chế độ Ngủ kết hợp / Ngủ đông. Khi bạn sử dụng nút Ngủ từ menu bắt đầu, bạn có thể khôi phục máy tính của mình khỏi chế độ ngủ bằng cách nhấn một phím bất kỳ trên bàn phím. Sử dụng dòng lệnh này, làm cho tiếp tục chậm hơn nhiều do trạng thái ngủ sâu hơn và nó chỉ có thể tiếp tục nếu bạn nhấn nút nguồn trên máy tính của bạn. Nó không thể tiếp tục cho một lần nhấn phím. Vậy ... làm thế nào để bạn làm cho nó ngủ như ở chế độ chờ bình thường - có thể tiếp tục với việc bấm phím?
Công ty Geek

6
Các downvote không phải là không chính đáng. Câu trả lời của bạn không tự giải quyết câu hỏi. Người đọc có thể thu thập đủ thông tin hữu ích từ một câu trả lời để giải quyết vấn đề mà không cần phải theo bất kỳ liên kết nào đến các trang web khác có thể bị hỏng hoặc chết.
Iszi

5
Bị từ chối vì không trả lời câu hỏi được hỏi: ngay cả trong trang được liên kết, phương pháp được mô tả để đặt máy ngủ sẽ không hoạt động khi chế độ ngủ đông được bật.
akurtser

4
Tôi cũng đã kiểm tra lệnh Ngủ và cũng có thể xác nhận rằng nó không hoạt động như dự định. Nó không liên quan gì đến việc ghét / trolling, nhưng nếu lệnh đó không hoạt động, thì câu hỏi không được trả lời, vì đó là phần chính của câu hỏi.
reSPAWNed

6
rundll32không nên được sử dụng để gọi SetSuspendStatevì chữ ký của nó không khớp với dự kiến rundll32. Xem: support.microsoft.com/en-us/kb/164787msdn.microsoft.com/en-us/library/windows/desktop/... Tham số đầu tiên được rác thay vì giá trị FALSE. Đó là lý do, tại sao nó ngủ đông thay vì đi ngủ.
SergeyT

86

Các phương thức được đăng bởi người khác không hoạt động chính xác nếu máy tính được bật chế độ ngủ đông, máy tính sẽ không đánh thức trên Bàn phím hoặc quan trọng hơn là không đánh thức tác vụ theo lịch trình.

Một trong những công cụ Sysiternals của Microsoft là PsShutdown sử dụng lệnh psshutdown -d -t 0nó sẽ ngủ chính xác, không ngủ đông , một máy tính


Yêu cầu nâng lên Quản trị viên
dsmtoday

3
Hoạt động với tôi trong Windows 10 x64, Build 1709.
Hans Løken

1
Hoạt động với tôi trong Win10x64 Phiên bản 1709, chạy cmd bằng tài khoản người dùng quản trị viên nhưng không có run as administratortùy chọn nhấp chuột phải
Viktor Carlson

3
Hoạt động với tôi với Windows 10 (thậm chí không phải là quản trị viên).
DAB

3
Hoạt động trong Windows 10 x64 Build 15063. Người ta cần tải xuống PsTools và sao chép psshutdown.exetừ archiv sang ví dụ C:\Windows\System32để có thể sử dụng lệnh mà không cần pathprefix. Một sau đó cần phải thực thi psshutdown -d -t 0với các đặc quyền quản trị để đình chỉ. Đây phải là câu trả lời được chấp nhận , vì nó trả lời câu hỏi, ngay cả khi không phải với các công cụ được cài đặt sẵn của Windows.
Arch Linux tu

19

Lệnh rundll32.exe powrprof.dll,SetSuspendState 0,1,0cho giấc ngủ là chính xác - tuy nhiên, nó sẽ ngủ đông thay vì ngủ nếu bạn không tắt chế độ ngủ đông.

Đây là cách để làm điều đó:

Chuyển đến Menu Bắt đầu và mở Dấu nhắc Lệnh nâng cao bằng cách nhập cmd.exe, nhấp chuột phải và chọn Chạy với tư cách quản trị viên . Gõ lệnh sau:

powercfg -hibernate off

5
Tôi nghĩ đó là câu trả lời đầu tiên thực sự giải quyết nó. Tôi đặt hai dòng này (-hibernate tắt trước) và tạo một tệp bó đặt máy tính vào chế độ ngủ. Một vấn đề với nó là về cơ bản nó tắt chế độ ngủ đông, đó không phải là điều tôi muốn, vì vậy để khắc phục, tôi đã thêm một tác vụ theo lịch trình được kích hoạt vào "mở khóa máy trạm" để bật chế độ ngủ đông với một dòng có dòng duy nhất là " powercfg -hibernate tắt ". Sau đó, tôi cấu hình một phím ngắn cho tệp bó đầu tiên. Làm xong. Hoạt động như một lá bùa, cảm ơn bạn!
akurtser

Nó thật quái dị. Ngủ đông cần được tắt trước khi bạn có thể ngủ đúng cách? Có một tên cho trạng thái ngủ / tạm ngưng lai powrprof.dlllà khi ngủ đông được bật không? Chỉ muốn biết. Nó có liên quan đến bất kỳ trạng thái ACPI nào không?
Ehtesh Choudhury

4
rundll32không nên được sử dụng để gọi SetSuspendStatevì chữ ký của nó không khớp với dự kiến rundll32. Xem: support.microsoft.com/en-us/kb/164787msdn.microsoft.com/en-us/l Library / windows /desktop / trộm Tham số đầu tiên nhận rác thay vì FALSE. Đó là lý do, tại sao nó ngủ đông thay vì đi ngủ.
SergeyT

Không hoạt động trong Windows 10
T3rm1

@EhteshChoudhury, vấn đề trong trường hợp này là các tham số Rundll32 không chính xác và hoàn toàn không được sử dụng, do đó chúng thực sự gọi SetSuspendState với các tham số: Hibernate: TRUE, ForceCritical: TRUE, DisableWakeEvents: TRUE. Bit cuối cùng giải thích lý do tại sao bạn không thể đánh thức PC bằng bất cứ thứ gì ngoại trừ nút nguồn. Chỉ có một sự trùng hợp là cố gắng ngủ đông khi bị vô hiệu hóa sẽ khiến PC của bạn ngủ trong Win7 và có lẽ tại sao nó không hoạt động đối với một số người.
SilverbackNet

10

NirCmd hoạt động trên Windows 8 (Tôi giả sử nó cũng hoạt động với Windows 7) → http://www.nirsoft.net/utils/nircmd.html
Lệnh này là standby, nhưng nó khiến máy tính ngủ.

nircmd.exe standby

Nếu bạn kích hoạt chế độ ngủ lai, nó sẽ hoạt động; tức là, nó đặt máy tính ngủ và sao chép bộ nhớ vào đĩa trong trường hợp mất điện.


1
Điều này hoạt động mà không cần phải nâng lên Quản trị viên. Hoạt động có hoặc không có chế độ ngủ đông được kích hoạt. Hoạt động như mong đợi với giấc ngủ lai. Giải pháp hay cho Win10.
dsmtoday

3

Xem tiện ích miễn phí của Wizmo , có thể làm rất nhiều thứ.
Lệnh bạn đang tìm kiếm có lẽ là:

wizmo chờ


1
Wizmo có cùng một vấn đề như rundll32.exe powrprof.dll,SetSuspendState 0,1,0- nó đặt máy tính ở trạng thái ngủ đông, không ngủ
Andomar

2
Không, kể từ Vista, nó thực sự đặt máy tính ở chế độ Ngủ kết hợp . Nếu bạn không muốn điều này, thì hãy tắt Hybrid Ngủ .
harrymc

1
wizmo mất điện làm việc trong windows 8.1, 10. TUYỆT VỜI !!!!!!!!!!!!!
YumYumYum

Wizmo làm việc tuyệt vời. Thật không may, trình quét virus doanh nghiệp của tôi xóa nó vì nó chứa một số trình tự khiến mcafee nghĩ rằng nó có chứa trojan .
bastian

@bastian: Mcafee luôn là tin xấu đối với một người viết ứng dụng (từ kinh nghiệm cá nhân).
harrymc

3

Tôi đã tạo một lối tắt cho rundll32.exe powrprof.dll,SetSuspendState 0,1,0(cũng đã thử với 0,0,0), nhưng chạy phím tắt dường như đưa PC của tôi vào trạng thái ngủ đông. Tôi không thể đánh thức PC bằng bàn phím; Tôi đã phải nhấn nút nguồn và PC hiển thị các thông báo bài đăng trên bo mạch chính, v.v.

Sau khi đọc tài liệu API của Windows , tôi đã tạo một chương trình rất đơn giản chỉ với 3 dòng gõ. Tôi đã tải lên tệp thực thi mà tôi đã biên dịch lên trang này (nhấp vào "SleepTest.exe") , nhưng tệp này có thể bị xóa sau một thời gian (đây là trang web lưu trữ tệp miễn phí mà tôi vừa tìm thấy bằng một tìm kiếm nhanh của Google).

Nếu bạn không tin tưởng tôi (điều này hoàn toàn tốt) hoặc tệp đã bị xóa, bạn có thể tự biên dịch mã, Tất nhiên. Bạn cần thêm "PowrProf.lib" vào các phụ thuộc bổ sung của Trình liên kết.

#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,0dường như đang làm điều tương tự, nhưng bằng cách nào đó, chương trình trên không đưa máy tính vào trạng thái ngủ đông. Tôi có thể đánh thức PC ngay lập tức (không có tin nhắn trên bo mạch chính, v.v.) bằng cách nhấn bất kỳ phím nào trên bàn phím.


2

Bạn có thể bắt đầu các tùy chọn tạm ngưng hoặc ngủ đông từ dòng lệnh như được chỉ định bên dưới và được tham chiếu trong bài viết này .

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

Nếu máy tính của bạn được đặt để cho phép ngủ đông thì lệnh trên sẽ bắt đầu chế độ ngủ đông. Nếu tính năng ngủ đông bị tắt, thì nó sẽ vào trạng thái chờ. Như những người dùng khác đã trả lời trước đó, shutdown.exe /?sẽ cung cấp nhiều tùy chọn tắt máy.


1
rundll32không nên được sử dụng để gọi SetSuspendStatevì chữ ký của nó không khớp với dự kiến rundll32. Xem: support.microsoft.com/en-us/kb/164787msdn.microsoft.com/en-us/library/windows/desktop/... Tham số đầu tiên được rác thay vì FALSE, vì vậy nó luôn ngủ đông thay vì đi ngủ.
SergeT

1

Trước tiên, bạn phải tắt Hibernate trong windows và sau đó đặt máy tính ở trạng thái Ngủ . Sử dụng hai lệnh sau:

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

và để thực hiện hành động ngược lại, Ngủ đông máy tính, sử dụng các lệnh bên dưới:

powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate

3
rundll32không dành cho cuộc gọi SetSuspendStatevà không nên được sử dụng cho việc này. Tham số đầu tiên nhận được rác thay vì giá trị chính xác. Vì vậy, nó luôn ngủ đông thay vì đi ngủ (nếu bạn chưa tắt chế độ ngủ đông).
SergeyT

@SergeyT Nó dường như hoạt động với tôi (sau khi vô hiệu hóa chế độ ngủ đông); bạn đang nói điều này sẽ làm hỏng cửa sổ?
moondra

Nó làm hỏng ngăn xếp (vì rundll32 mong đợi một chữ ký cuộc gọi khác, do đó, nó bật ra những thứ không thực sự được đặt ở đó). Điều này dẫn đến hành vi bất ngờ.
imoatama

@imoatama tìm kiếm tốt đẹp ...
masterxilo

1

Đây là một bài viết về việc sử dụng CLI để tắt máy.

Microsoft cung cấp PsTools cung cấp cho bạn tắt CLI cùng với các công cụ hữu ích khác. Bạn có thể có được điều đó ở đây .


1

chỉ NHANH SLEEPER hoạt động với tôi (hoạt động trong Windows 7,8,10).

mã nguồn ps có sẵn ở đây .


1
Có bất kỳ cơ hội nào bạn có thể cung cấp một liên kết đến trang web thực tế mà bạn đã nhận được tệp từ đó không? Liên kết trực tiếp đến tệp tải xuống, đặc biệt là khi sử dụng trình rút ngắn URL, có thể khiến tệp có vẻ đặc biệt đáng ngờ vì đây là một chiến thuật thường được sử dụng bởi các nhà văn phần mềm độc hại.
Mokubai

ok, tôi đã cập nhật liên kết đến trang web chính thức.
T.Todua

1

Nếu bạn có sẵn Python (với pywin32), bạn cũng có thể gọi hàm SetSuspendState đó trực tiếp bằng:

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

Điều này có thể dễ dàng được đưa vào một tệp bó hoặc một loại phím tắt như:

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

Vì vậy, nếu bạn không có các tệp .py của mình được liên kết với trình thông dịch, bạn chỉ cần nhấp đúp vào liên kết.


1

Phần tắt của câu hỏi là rõ ràng cho mọi người.
shutdown.exe /?hiển thị tất cả các lựa chọn để tắt / khởi động lại / tùy chọn nâng cao boot / firmware boot.

Nhưng tôi thấy rất nhiều bash ném xung quanh về phần Ngủ.
Mọi người đều nhận được nó rundll32.exekhông nên được sử dụng để gọi các hàm ngẫu nhiên và nó chỉ hoạt động ở đây để ngủ đông hoàn toàn do sự trùng hợp. Nhưng đó là bản chất của Windows - một hộp đen mà mọi người đã chọc ngoáy và tìm thấy hàng trăm cách giải quyết để hoàn thành công việc (hét to lên dostips).

Có rất nhiều giải pháp " phù hợp " đề xuất các công cụ bên ngoài , nhưng tôi dường như không thể tìm thấy một tập lệnh bó (lai / pinvoke / bất cứ thứ gì) , ngay cả khi câu hỏi này vẫn còn hoạt động trong nhiều năm qua.
Vì vậy, đây là power_s ngủ đơn giản của tôi :

@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

Nó thậm chí hoạt động như một lệnh một dòng lớn:

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();"
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.