ทุกเมื่อ ส่วนใหญ่เป็นผู้ดูแลระบบ (system administrator) จะต้องรีสตาร์ทเซิร์ฟเวอร์หรือระบบ ปกติคุณสามารถ Remote Shut down หรือ Restart Windows 10 ผ่าน graphical user interface – PowerShell มีหลายวิธีสำหรับการรีบูทคอมพิวเตอร์ระยะไกล และเราจะรेखากลยุทธ์ 6 วิธีที่รู้จักในบทความนี้

วิธี Remotely Restart Windows 10 ด้วย PowerShell
ข้อกำหนดก่อนของวิธีเหล่านี้คือ ต้องแน่ใจว่าเราสามารถติดต่อระบบระยะไกลและยืนยันตัวตนได้ตามที่จำเป็น และยังต้องตรวจสอบว่าระบบระยะไกลไม่ได้รอการรีบูท
คุณจะต้องมี:
- บัญชีผู้ใช้บนคอมพิวเตอร์ระยะไกลในกลุ่ม local administrator
- Windows PowerShell หรือ PowerShell Core
1] รีสตาร์ทคอมพิวเตอร์ระยะไกลด้วย Restart-Computer
Cmdlet นี้ใช้งานง่ายด้วยพารามิเตอร์ที่ยืดหยุ่น ข้อกำหนดเพิ่มเติมสำหรับคำสั่งให้ทำงานคือ ต้องแน่ใจว่า WinRM ถูกกำหนดค่าและอนุญาตผ่าน Windows firewall ของคอมพิวเตอร์ระยะไกล และ WMI ถูกอนุญาตผ่าน Windows firewall
Restart-Computer -ComputerName $ComputerName -Force
เพื่อรีสตาร์ทคอมพิวเตอร์หลายเครื่องพร้อมกัน (parallel) ให้รันคำสั่งต่อไปนี้:
$ComputerArray | ForEach-Object -Parallel { Restart-Computer -ComputerName $_ -Force } -ThrottleLimit 3
2] รีสตาร์ทคอมพิวเตอร์ระยะไกลด้วย Invoke-CimMethod
Invoke-CimMethod ทำงานโดยใช้วิธี WIM เพื่อรีบูทระบบระยะไกล – แม้จะไม่ยืดหยุ่นเท่า Restart-Computer cmdlet
ข้อกำหนดเพิ่มเติมสำหรับคำสั่งให้ทำงานคือ ต้องแน่ใจว่า WinRM ถูกกำหนดค่าและอนุญาตผ่าน Windows firewall ของคอมพิวเตอร์ระยะไกล
Invoke-CimMethod -ComputerName $ComputerName -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'
3] รีสตาร์ทคอมพิวเตอร์ระยะไกลด้วย shutdown.exe
shutdown.exe คือ executable ในตัวมาตรฐานที่ Windows เสนอเพื่อรีสตาร์ทระบบ และมันไม่ใช่คำสั่ง PowerShell แต่เสนอตัวเลือกที่แข็งแกร่งหลายอย่าง
ข้อกำหนดเพิ่มเติมสำหรับคำสั่งให้ทำงานคือ ต้องแน่ใจว่าคอมพิวเตอร์ระยะไกลมี Remote Registry service เปิดใช้งาน และ WMI ถูกอนุญาตผ่าน Windows firewall
shutdown.exe /m \\remotecomputer /r /t 0
4] รีสตาร์ทคอมพิวเตอร์ระยะไกลด้วย PSExec.exe
หนึ่งใน utilities ที่ใช้มากที่สุดใน Sysinternals toolkit psexec.exe เสนอความสามารถเฉพาะตัวหลายอย่างที่ทำให้การโต้ตอบกับระบบระยะไกลง่ายขึ้น
ข้อกำหนดเพิ่มเติมสำหรับคำสั่งให้ทำงานคือ ต้องแน่ใจว่า SMB Service กำลังรัน, file and printer sharing เปิดใช้งาน, simple file sharing ปิดใช้งาน และ admin$ administrative share พร้อมใช้งาน
psexec.exe -d -h \\remotecomputer "shutdown.exe /r /t 0 /f"
5] รีสตาร์ทคอมพิวเตอร์ระยะไกลด้วย RunDLL32.exe
rundll32.exe เสนอวิธีในการรันเมธอดบางอย่างกับ executables ภายในและ Windows APIs เช่น shell32.dll มีสองวิธีที่คุณสามารถรีสตาร์ทระบบโดยใช้ฟังก์ชันนี้ แต่วิธีนี้ไม่สามารถใช้งานระยะไกลได้ด้วยตัวมันเอง คุณสามารถรวมกับ PowerShell ผ่าน Invoke-Command บนระบบระยะไกล
Method 1:
Invoke-Command -ComputerName $ComputerName -ScriptBlock { & rundll32.exe user.exe ExitWindowsExec }
Method 2:
Invoke-Command -ComputerName $ComputerName -ScriptBlock { & rundll32.exe user.exe ExitWindowsExec }
6] รีสตาร์ทคอมพิวเตอร์ระยะไกลด้วย Taskkill.exe
สุดท้ายแต่ไม่ใช่น้อยที่สุด taskkill.exe เป็นอีกหนึ่ง Windows utility ที่เสนอฟังก์ชันบางอย่างเพื่อรีสตาร์ท Windows แบบอ้อมๆ โดยการจบกระบวนการ lsass.exe คุณจะบังคับให้ Windows รีสตาร์ท
taskkill.exe /S \\remotecomputer /IM lsass.exe /F
นั่นคือ 6 วิธีในการใช้ PowerShell เพื่อรีสตาร์ทคอมพิวเตอร์ระยะไกล!
