此功能極度危險,僅供內網受控環境教學參考,嚴禁部署於公開網路! 任何未授權的遠端關機行為均屬違法。
透過 PHP exec() 執行 Windows shutdown.exe 指令,需 Web 伺服器進程擁有 cmd.exe 執行權限。
<?php
/**
* 遠端電源管理
* 僅限受信任內網環境使用
* 作者:薛如飛
* 日期:2008-08-28
*/
// 處理表單提交
if (isset($_POST['cmd'])) {
$cmd = stripslashes($_POST['cmd']);
// 基礎指令驗證(防止指令注入)
$allowed = ['shutdown -r', 'shutdown -s', 'shutdown -l'];
if (!in_array($cmd, $allowed, true)) {
die('非法指令');
}
exec($cmd, $output, $returnVar);
echo "<pre>";
echo "返回碼: $returnVar\n";
echo "輸出:\n";
print_r($output);
echo "</pre>";
exit;
}
?>
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<title>遠端電源管理</title>
<style>body{font-family:sans-serif;max-width:400px;margin:2rem auto;}</style>
</head><body>
<h2>⚠️ 遠端電源控制(僅限授權人員)</h2>
<form method="post">
<label>選擇操作:
<select name="cmd">
<option value="shutdown -r">重啟電腦 (-r)</option>
<option value="shutdown -s">關機 (-s)</option>
<option value="shutdown -l">登出當前用戶 (-l)</option>
</select>
</label>
<br><br>
<button type="submit" onclick="return confirm('確定執行?此操作不可逆!')>執行</button>
</form>
</body></html>
| 參數 | 動作 | 常用組合 |
|---|---|---|
| -s | 關機 | shutdown -s -t 60 -c "60秒後關機" |
| -r | 重啟 | shutdown -r -t 0 立即重啟 |
| -l | 登出 | shutdown -l(不可搭配 -t) |
| -a | 取消排程 | shutdown -a |
| -t xxx | 延遲秒數 | 0-315360000 (10年) |
| -c "msg" | 關機訊息 | 最長 512 字元 |
| -f | 強制關閉程式 | 避免阻塞 |
// Linux 需 sudo 權限,極不建議用 Web 執行 // 正規做法:配置 sudoers 免密執行特定指令 // sudo shutdown -h now // sudo reboot