首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 遠端關機/重啟/登出腳本(Windows 環境)

     編輯:PHP 相關知識

⚠️ 安全警示

此功能極度危險,僅供內網受控環境教學參考,嚴禁部署於公開網路! 任何未授權的遠端關機行為均屬違法。

實作原理

透過 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>

Windows shutdown 參數說明

參數動作常用組合
-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強制關閉程式避免阻塞

權限設定(IIS/Apache)

  1. 開啟「服務」→ 找到 Apache/IIS 服務
  2. 右鍵「內容」→ 「登入」分頁
  3. 選「此帳號」→ 輸入具備關機權限的管理員帳號密碼
  4. 或:本地安全策略 → 使用者權利指派 → 「從遠端系統強制關機」 → 加入服務帳號

安全加固建議

  • HTTP Basic Auth 或 IP 白名單 限制存取
  • 加入 CSRF Token 防止跨站偽造請求
  • 記錄 操作日誌(時間、IP、操作人、指令)
  • 前端加入 二次確認對話框
  • 考慮改用 SSH/WMI/PowerShell Remoting 替代 HTTP 執行

Linux 版本參考

// Linux 需 sudo 權限,極不建議用 Web 執行
// 正規做法:配置 sudoers 免密執行特定指令
// sudo shutdown -h now
// sudo reboot
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved