Shutdown.exe เป็นเครื่องมือบรรทัดคำสั่งในตัวของ Windows ที่อนุญาตให้รีบูต ปิดระบบ ทำให้คอมพิวเตอร์เข้าสู่โหมดสลีป ไฮเบอร์เนต หรือสิ้นสุดเซสชันของผู้ใช้ ในคู่มือนี้ เราจะแสดงตัวอย่างพื้นฐานของการใช้คำสั่งปิดระบบใน Windows คำสั่งทั้งหมดที่กล่าวถึงข้างต้นจะรันในไดอะล็อกบ็อกซ์ Run — Win+R
-> ในพรอมต์คำสั่ง (cmd.exe) หรือใน PowerShell
คำสั่งปิดระบบมีรูปแบบดังนี้:shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]
อย่างที่คุณเห็น คำสั่งมีตัวเลือกมากมาย และสามารถใช้เพื่อปิด/รีสตาร์ทคอมพิวเตอร์ในเครื่องหรือระยะไกลได้
วิธีปิด Windows โดยใช้ Command Prompt?
ในการปิด Windows คอมพิวเตอร์ของคุณ ให้ใช้คำสั่งปิดเครื่องด้วย /s ที่สำคัญ
shutdown /s
รีบูต Windows จาก CMD
ในการรีบูตเครื่องคอมพิวเตอร์ ให้ใช้ปุ่ม /r พารามิเตอร์. หลังจากรัน Windows จะรีสตาร์ทอย่างสวยงาม
shutdown /r
สิ้นสุดเซสชันของผู้ใช้
หากต้องการสิ้นสุดเซสชันผู้ใช้ปัจจุบัน (ออกจากระบบ) ให้เรียกใช้คำสั่งนี้:
shutdown /l
คำสั่งนี้ทำงานในลักษณะเดียวกับ logoff.exe คำสั่ง
วิธีไฮเบอร์เนต Windows
ในการไฮเบอร์เนตคอมพิวเตอร์ของคุณ ให้เรียกใช้คำสั่งนี้:
shutdown /h
ในโหมดไฮเบอร์เนต เนื้อหาหน่วยความจำทั้งหมดจะถูกเขียนลงในไฟล์ hiberfil.sys บนดิสก์ภายในเครื่อง และคอมพิวเตอร์จะเข้าสู่โหมดสลีปซึ่งจะช่วยลดการใช้พลังงาน
จะแจ้งผู้ใช้ที่เข้าสู่ระบบก่อนรีบูตหรือปิดเครื่องได้อย่างไร
คุณสามารถแจ้งผู้ใช้ Windows ที่เข้าสู่ระบบทั้งหมดเกี่ยวกับการปิดเครื่อง/รีบูตที่จะเกิดขึ้นของคอมพิวเตอร์หรือเซิร์ฟเวอร์โดยส่งข้อความไปยังเซสชันที่ใช้งานอยู่ทั้งหมด ตามกฎแล้ว คุณลักษณะนี้ใช้กับเซิร์ฟเวอร์ RDS โดยมีผู้ใช้หลายคนทำงานพร้อมกันในเซสชัน RDP ของตนเอง
shutdown /r /c “This server will be restarted in 60 seconds.”
ล่าช้าในการปิดเครื่อง/รีบูตเครื่องคอมพิวเตอร์โดยใช้ตัวจับเวลา
คุณสามารถปิดหรือรีสตาร์ทคอมพิวเตอร์ได้โดยมีความล่าช้า (เมื่อจับเวลา) การใช้ /t คุณสามารถระบุช่วงเวลาที่คอมพิวเตอร์/เซิร์ฟเวอร์จะปิดหรือรีบูตได้ ดังนั้น คุณจึงสามารถให้เวลาผู้ใช้ในการบันทึกไฟล์ที่เปิดอยู่และปิดแอปได้อย่างถูกต้อง สะดวกในการใช้ตัวเลือกนี้ร่วมกับข้อความแจ้งเตือน ในตัวอย่างนี้ เราแจ้งผู้ใช้ว่า Windows จะปิดใน 10 นาที (600 วินาที)
shutdown /s /t 600 /c "The server will be shutdown in 10 minutes. Save your work!"
ผู้ใช้จะเห็นการแจ้งเตือนเกี่ยวกับการปิดระบบตามแผน:
You’re about to be signed out
หากการหน่วงเวลานานเกินไป เช่น 100 นาที (6,000 วินาที) หน้าต่างป๊อปอัปจะปรากฏขึ้นที่มุมล่างขวาของหน้าจอ:คุณกำลังจะออกจากระบบ Windows ของคุณจะปิดใน 100 นาที
ยกเลิกการปิดเครื่องหรือรีสตาร์ท Windows
หลังจากเรียกใช้คำสั่งปิดหรือรีบูตของ Windows เครื่องมือปิดระบบจะรอ 60 วินาทีตามค่าเริ่มต้นโดยไม่ทำอะไรเลย ผู้ดูแลระบบสามารถยกเลิกการรีสตาร์ทหรือปิดเครื่องโดยเรียกใช้คำสั่งนี้ในช่วงเวลานี้:
shutdown /a
หลังจากที่คุณยกเลิกการปิดเครื่อง คุณจะเห็นหน้าต่างป๊อปอัปต่อไปนี้ที่มุมล่างขวาของหน้าจอ:ออกจากระบบจะถูกยกเลิก การปิดระบบตามกำหนดเวลาถูกยกเลิก
บังคับให้คอมพิวเตอร์รีสตาร์ททันที
หากต้องการปิดหรือรีบูตคอมพิวเตอร์ทันทีโดยไม่ต้องรอ 60 วินาที ให้ระบุ 0 เป็นค่าของพารามิเตอร์ /t ตัวอย่างเช่น การรีสตาร์ทคอมพิวเตอร์ทันที:
shutdown /r /t 0
/f ที่สำคัญเป็นสิ่งสำคัญมาก ฉันใช้มันเกือบทุกครั้งเมื่อปิดหรือรีสตาร์ทเซิร์ฟเวอร์ Windows แอตทริบิวต์นี้บังคับให้ปิดโปรแกรมและกระบวนการที่ทำงานอยู่ทั้งหมดโดยไม่มีการยืนยันจากผู้ใช้ (เราจะไม่รอจนกว่าผู้ใช้จะยืนยันการปิดแอปพลิเคชันทั้งหมดบนเซิร์ฟเวอร์ RDS เนื่องจากเราไม่สามารถรับได้)
คำสั่งถัดไปจะรีสตาร์ทคอมพิวเตอร์และเรียกใช้แอปที่ลงทะเบียนทั้งหมดโดยอัตโนมัติหลังจากการรีสตาร์ท (แอปที่ลงทะเบียนในระบบโดยใช้ RegisterApplicationRestart API หมายถึงที่นี่)
shutdown /g
อยากปิดเครื่องหรือรีสตาร์ทคอมพิวเตอร์ Windows จากระยะไกลไหม
คุณสามารถรีบูตเครื่องคอมพิวเตอร์ระยะไกลได้หากคุณมีสิทธิ์เข้าถึงเครือข่าย และบัญชีที่คุณใช้เพื่อเรียกใช้คำสั่งปิดเครื่องจะต้องเป็นสมาชิกของกลุ่มผู้ดูแลระบบภายในเครื่องคอมพิวเตอร์ระยะไกล (เซิร์ฟเวอร์):
shutdown /r /t 120 /m \\192.168.1.210
หากตรงตามเงื่อนไขทั้งหมดที่อธิบายไว้ข้างต้น แต่เมื่อเรียกใช้คำสั่งปิดระบบ ข้อผิดพลาด "การเข้าถึงถูกปฏิเสธ (5)" จะปรากฏขึ้น ให้อนุญาตการเข้าถึงระยะไกลเพื่อแชร์ผู้ดูแลระบบ (C$, ADMIN$) บนคอมพิวเตอร์ระยะไกลโดยเปลี่ยนค่าของ พารามิเตอร์ LocalAccountTokenFilterPolicy เป็น 1
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f
หากคุณต้องการรีสตาร์ทคอมพิวเตอร์หลายเครื่องจากระยะไกล คุณสามารถบันทึกรายการคอมพิวเตอร์ลงในไฟล์ข้อความและเรียกใช้การรีบูตคอมพิวเตอร์ทุกเครื่องจากระยะไกลโดยใช้สคริปต์ PowerShell แบบง่าย:
$sh_msg = "Your computer will be automatically restarted in 10 minutes. Save your files and close running apps"
$sh_delay = 600 # seconds
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
{
& 'C:\Windows\System32\SHUTDOWN.exe' "-m \\$comp -r -c $sh_msg -t $sh_delay"
}
อินเทอร์เฟซแบบกราฟิกคำสั่งปิดเครื่อง
ผู้ที่ไม่สะดวกที่จะทำงานในพรอมต์คำสั่งสามารถใช้อินเทอร์เฟซแบบกราฟิกของคำสั่ง shutdown.exe หากต้องการเรียกกล่องโต้ตอบการปิดระบบจากระยะไกล ให้ใช้คำสั่ง:
shutdown /i
อย่างที่คุณเห็น คุณสามารถเพิ่มคอมพิวเตอร์หลายเครื่องในกล่องโต้ตอบการปิดระบบจากระยะไกลเพื่อรีบูต/ปิดเครื่อง ระบุข้อความแจ้งเตือน และระบุสาเหตุของการปิดระบบที่จะบันทึกไว้ในบันทึกเหตุการณ์ของ Windows
วิธีการรีบูตคอมพิวเตอร์โดยใช้ทางลัด
เพื่อให้ผู้ใช้สะดวกยิ่งขึ้น คุณสามารถสร้างทางลัดเพื่อรีสตาร์ทหรือปิดเครื่องคอมพิวเตอร์ด้วยการตั้งค่าที่จำเป็นบนเดสก์ท็อป ทางลัดอาจมีประโยชน์เมื่อคุณต้องการรีสตาร์ทคอมพิวเตอร์จากเซสชัน RDP เมื่อไม่มีตัวเลือกในการรีสตาร์ทหรือปิดเครื่องคอมพิวเตอร์ในเมนูเริ่ม
หากคุณต้องการให้คอมพิวเตอร์หรือเซิร์ฟเวอร์รีสตาร์ท/ปิดเครื่องตามเวลาที่กำหนด คุณสามารถเพิ่มคำสั่งปิดระบบพร้อมพารามิเตอร์บางตัวใน Windows Task Scheduler (taskschd.msc
)
ตัวอย่างเช่น งานตัวจัดกำหนดการนี้จะรีสตาร์ทคอมพิวเตอร์ทุกวันเวลา 12.00 น.
หรือคุณสามารถสร้างงานตัวจัดกำหนดการใหม่ด้วย PowerShell:
$Trigger= New-ScheduledTaskTrigger -At 00:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "–f –r –t 120"
Register-ScheduledTask -TaskName "RebootEvertyNight_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force