ฉันรู้ว่าเกือบทุกอย่างบน Windows เช่นการเปิดแอปพลิเคชันทุกประเภทสามารถทำได้จากcommand promptหรือจากเมนูRun
ฉันจะทำให้คอมพิวเตอร์เข้าสู่โหมดสลีปหรือปิดเครื่องได้อย่างไร คำสั่งสำหรับสิ่งนั้นคืออะไร?
ฉันรู้ว่าเกือบทุกอย่างบน Windows เช่นการเปิดแอปพลิเคชันทุกประเภทสามารถทำได้จากcommand promptหรือจากเมนูRun
ฉันจะทำให้คอมพิวเตอร์เข้าสู่โหมดสลีปหรือปิดเครื่องได้อย่างไร คำสั่งสำหรับสิ่งนั้นคืออะไร?
คำตอบ:
คุณจะพบว่าshutdown.exe
เป็นเพื่อนของคุณ
คำสั่งที่มีประโยชน์อื่น ๆ ดูโพสต์นี้ :
Sleep Computer (อ่านเพิ่มเติมได้ที่https://superuser.com/a/463652/249349 )
ล็อคเวิร์กสเตชัน
คอมพิวเตอร์ไฮเบอร์เนต
see answers by Scott Chamberlain and Eric L
รีสตาร์ทคอมพิวเตอร์
Shutdown.exe -r -t 00
ปิดเครื่องคอมพิวเตอร์
Shutdown.exe -s -t 00
แก้ไข / UPDATE:
ดูเหมือนว่าการนอนคอมพิวเตอร์เป็นปัญหาหากเปิดเครื่องไฮเบอร์เนต
คัดลอกจากคำตอบอื่น ๆ :
คุณสามารถลองPsShutdown หรือ:
คำสั่ง rundll32.exe powrprof.dll, SetSuspendState 0,1,0 สำหรับการสลีปนั้นถูกต้อง - อย่างไรก็ตามมันจะจำศีลแทนการสลีปหากคุณไม่ปิดไฮเบอร์เนต
นี่คือวิธีการทำ:
ไปที่เมนูเริ่มและเปิดพร้อมท์คำสั่งแบบยกระดับโดยพิมพ์ cmd.exe คลิกขวาแล้วเลือกเรียกใช้ในฐานะผู้ดูแลระบบ พิมพ์คำสั่งต่อไปนี้:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
คือมันไม่ทำงานตามที่ควร SetSuspendState
จะทำให้คอมพิวเตอร์เข้าสู่โหมดไฮบริดสลีป / ไฮเบอร์เนต เมื่อคุณใช้ปุ่มสลีปจากเมนูเริ่มต้นคุณสามารถกลับมาใช้งานคอมพิวเตอร์จากโหมดสลีปได้โดยกดปุ่มใด ๆ บนแป้นพิมพ์ของคุณ การใช้บรรทัดคำสั่งนี้ทำให้การทำงานต่อช้าลงมากเนื่องจากสถานะสลีปลึกขึ้นและสามารถทำงานต่อได้ต่อเมื่อคุณกดปุ่มเปิดปิดบนคอมพิวเตอร์ของคุณ มันไม่สามารถดำเนินการต่อสำหรับการกดปุ่ม ดังนั้น ... คุณจะทำให้โหมดสลีปอยู่ในโหมดสแตนด์บายปกติได้อย่างไร - กลับมาทำงานต่อได้ด้วยการกดปุ่ม?
rundll32
ไม่ควรใช้โทรSetSuspendState
เพราะลายเซ็นไม่ตรงกับที่คาดrundll32
ไว้ โปรดดู: support.microsoft.com/en-us/kb/164787และmsdn.microsoft.com/en-us/library/windows/desktop/ ......พารามิเตอร์แรกรับขยะแทนที่จะเป็นค่า FALSE มันเป็นเหตุผลทำไมมันจำศีลแทนที่จะไปนอน
วิธีการโพสต์โดยบุคคลอื่นไม่ทำงานอย่างถูกต้องหากคอมพิวเตอร์เปิดใช้งานการไฮเบอร์เนตคอมพิวเตอร์จะไม่ปลุกบนแป้นพิมพ์หรือที่สำคัญกว่านั้นไม่ทำงานตามเวลาที่กำหนด
หนึ่งในเครื่องมือ Sysinternals ของ Microsoft คือPsShutdownโดยใช้คำสั่งpsshutdown -d -t 0
มันจะทำงานอย่างถูกต้องไม่ได้จำศีลคอมพิวเตอร์
run as administrator
ตัวเลือกคลิกขวา
psshutdown.exe
จาก archiv ไปยังเช่นC:\Windows\System32
เพื่อให้สามารถใช้คำสั่งโดยไม่ต้อง pathprefix ต้องดำเนินการอย่างใดอย่างหนึ่งpsshutdown -d -t 0
ด้วยสิทธิ์ผู้ดูแลระบบเพื่อระงับ นี่ควรเป็นคำตอบที่ยอมรับได้ทำให้มันตอบคำถามแม้ว่าจะไม่ได้ใช้เครื่องมือติดตั้ง Windows ก็ตาม
คำสั่งrundll32.exe powrprof.dll,SetSuspendState 0,1,0
สำหรับการนอนหลับนั้นถูกต้อง - อย่างไรก็ตามมันจะจำศีลแทนการนอนหลับถ้าคุณไม่ปิดโหมดไฮเบอร์เนต
นี่คือวิธีการทำ:
ไปที่เมนู Start และเปิดพร้อมท์คำสั่งโดยการพิมพ์cmd.exe
, คลิกขวาและเลือกเรียกใช้ในฐานะผู้ดูแลระบบ พิมพ์คำสั่งต่อไปนี้:
powercfg -hibernate off
powrprof.dll
เมื่อสถานะไฮเบอร์เนตเปิดอยู่หรือไม่? แค่อยากรู้ มันเกี่ยวข้องกับรัฐ ACPI ใด ๆ หรือไม่?
rundll32
ไม่ควรใช้โทรSetSuspendState
เพราะลายเซ็นไม่ตรงกับที่คาดrundll32
ไว้ โปรดดู: support.microsoft.com/en-us/kb/164787และmsdn.microsoft.com/en-us/library/windows/desktop/ ......พารามิเตอร์แรกรับขยะแทนที่จะเป็น FALSE มันเป็นเหตุผลทำไมมันจำศีลแทนที่จะไปนอน
NirCmd ทำงานบน Windows 8 (ฉันถือว่ามันใช้งานได้กับ Windows 7) → http://www.nirsoft.net/utils/nircmd.html
คำสั่งคือstandby
แต่จะทำให้คอมพิวเตอร์เข้าสู่โหมดสลีป
nircmd.exe standby
หากคุณเปิดใช้งานไฮบริดสลีปจะทำงาน เช่นทำให้คอมพิวเตอร์เข้าสู่โหมดสลีปและคัดลอกหน่วยความจำไปยังดิสก์ในกรณีที่ไฟฟ้าดับ
ดูยูทิลิตี้ฟรีของWizmoซึ่งสามารถทำสิ่งต่างๆมากมาย
คำสั่งที่คุณกำลังมองหาน่าจะเป็น:
สแตนด์บาย wizmo
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
- มันทำให้คอมพิวเตอร์อยู่ในโหมดไฮเบอร์เนตไม่ได้หลับ
ฉันสร้างทางลัดสำหรับrundll32.exe powrprof.dll,SetSuspendState 0,1,0
(ลองด้วย 0,0,0) แต่การใช้ทางลัดนั้นดูเหมือนจะทำให้พีซีของฉันเข้าสู่โหมดไฮเบอร์เนต ฉันไม่สามารถปลุกพีซีโดยใช้แป้นพิมพ์ได้ ฉันต้องกดปุ่มเปิดปิดและพีซีแสดงข้อความโพสต์บนเมนบอร์ด ฯลฯ
หลังจากอ่านเอกสาร Windows APIฉันสร้างโปรแกรมง่าย ๆ ด้วยการพิมพ์เพียง 3 บรรทัด ฉันได้อัปโหลดไฟล์ปฏิบัติการที่ฉันรวบรวมไปยังหน้านี้ (คลิกที่ "SleepTest.exe")แต่ไฟล์นี้อาจถูกลบหลังจากผ่านไปครู่หนึ่ง (นี่เป็นเว็บไซต์โฮสติ้งไฟล์ฟรีที่ฉันเพิ่งค้นพบโดยการค้นหาโดย Google)
หากคุณไม่เชื่อใจฉัน (ซึ่งใช้ได้ดี) หรือไฟล์ถูกลบคุณสามารถรวบรวมรหัสด้วยตัวเองได้แน่นอน คุณต้องเพิ่ม "PowrProf.lib" ในการพึ่งพาเพิ่มเติมของ 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,0
ดูเหมือนว่าจะทำสิ่งเดียวกัน แต่อย่างใดโปรแกรมข้างต้นไม่ได้ทำให้คอมพิวเตอร์เข้าสู่โหมดไฮเบอร์เนต ฉันสามารถปลุกพีซีได้ทันที (ไม่มีข้อความแจ้งเตือนเมนบอร์ด) โดยกดปุ่มใด ๆ บนแป้นพิมพ์
คุณสามารถเริ่มต้นการระงับหรือจำศีลตัวเลือกจากบรรทัดคำสั่งตามที่ระบุไว้ด้านล่างและอ้างอิงในบทความนี้
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
หากคอมพิวเตอร์ของคุณถูกตั้งค่าให้อนุญาตการไฮเบอร์เนตคำสั่งด้านบนจะเริ่มต้นการไฮเบอร์เนต หากคุณสมบัติการจำศีลถูกปิดใช้งานคุณสมบัตินั้นจะเข้าสู่สถานะพร้อมใช้งาน ตามที่ผู้ใช้รายอื่นได้ตอบไปก่อนหน้านี้shutdown.exe /?
จะมีตัวเลือกการปิดเครื่องมากมาย
rundll32
ไม่ควรใช้โทรSetSuspendState
เพราะลายเซ็นไม่ตรงกับที่คาดrundll32
ไว้ โปรดดู: support.microsoft.com/en-us/kb/164787และmsdn.microsoft.com/en-us/library/windows/desktop/พารามิเตอร์ตัวแรกได้รับขยะแทนที่จะเป็น FALSE ดังนั้นจึงจำศีลแทนการไปที่ นอน.
คุณต้องปิดการใช้งานไฮเบอร์เนตใน windows ก่อนจากนั้นจึงกำหนดให้คอมพิวเตอร์อยู่ในสถานะสลีป ใช้สองคำสั่งต่อไปนี้:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
และสำหรับการดำเนินการย้อนกลับการไฮเบอร์เนตคอมพิวเตอร์ให้ใช้คำสั่งด้านล่าง:
powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
rundll32
ไม่ได้มีไว้สำหรับการโทรSetSuspendState
และไม่ควรใช้สำหรับการนี้ พารามิเตอร์แรกรับขยะแทนที่จะเป็นค่าที่ถูกต้อง ดังนั้นจึงจำศีลเสมอแทนที่จะไปนอน (ถ้าคุณไม่ได้ปิดการจำศีลเลย)
นี่คือบทความเกี่ยวกับการใช้ CLI เพื่อปิด
Microsoft ให้ PsTools ซึ่งให้การปิด CLI พร้อมเครื่องมือที่มีประโยชน์อื่น ๆ คุณจะได้รับที่นี่
เพียงSLEEPER QUICKทำงานสำหรับฉัน (ทำงานใน Windows 7,8,10)
หากคุณมี Python (ที่มี pywin32) คุณสามารถเรียกใช้ฟังก์ชัน SetSuspendState โดยตรงได้ที่:
import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)
สามารถใส่ลงในไฟล์แบทช์หรือ sorta ทางลัดได้อย่างง่ายดายเช่น:
pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"
ดังนั้นหากคุณไม่มีไฟล์. py ของคุณที่เกี่ยวข้องกับล่ามคุณก็สามารถคลิกที่ลิงค์
ส่วนการปิดระบบของคำถามนั้นชัดเจนสำหรับทุกคน
shutdown.exe /?
แสดงตัวเลือกทั้งหมดสำหรับการปิด / รีสตาร์ท / ตัวเลือกการบูตขั้นสูง / การบูตเฟิร์มแวร์
แต่ฉันเห็นการทุบตีมากมายรอบ ๆ ส่วนที่เกี่ยวกับการนอนหลับ
ทุกคนได้รับมันซึ่งrundll32.exe
ไม่ควรใช้เรียกฟังก์ชั่นสุ่มและมันใช้งานได้เพียงที่นี่เพื่อจำศีลโดยบังเอิญ แต่นั่นคือธรรมชาติของ Windows - กล่องดำที่ผู้คนแหย่ไปรอบ ๆ และพบวิธีแก้ปัญหาหลายร้อยเพื่อทำงานให้เสร็จ
มีคำตอบที่ " ถูกต้อง " จำนวนมากที่เสนอเครื่องมือภายนอกแต่ฉันไม่สามารถหาสคริปต์แบตช์แบบดั้งเดิม
ดังนั้นนี่คือpower_sleep.batง่ายๆของฉัน:
@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
มันยังทำงานเป็นคำสั่งบรรทัดเดียวขนาดใหญ่:
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();"