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

PHP 批量設定 IIS 目錄執行權限實作範例

     編輯:PHP 相關知識

應用場景

在 IIS 管理大量虛擬目錄時,需統一調整「執行權限」(無、僅腳本、腳本與可執行檔)。本工具透過 PHP 介面勾選目錄、選擇權限等級、輸入站點 ID,自動生成 IIS 元資料庫 XML 片段,匯入即可批量生效。

核心邏輯

1. 目錄掃描

同前文 getDir() 函數,過濾檔案只保留資料夾。

2. 表單欄位

  • 目錄清單(核取方塊)
  • 執行權限下拉選單:
    • 0 = 無 (AccessRead)
    • 1 = 純腳本 (AccessRead | AccessScript)
    • 2 = 腳本和可執行 (AccessExecute | AccessRead | AccessScript)
  • 站點 ID 輸入框(對應 W3SVC/{SiteId})

3. 權限對應邏輯

$exec = (int)$_POST['Execute'];
if ($exec === 0) $perm = 'AccessRead';
elseif ($exec === 1) $perm = 'AccessRead | AccessScript';
elseif ($exec === 2) $perm = 'AccessExecute | AccessRead | AccessScript';

4. 生成 Metabase XML

foreach ($dirs as $d) {
    echo "<IIsWebDirectory Location=\"/LM/W3SVC/{$siteId}/root/{$d}\" ";
    echo "AccessFlags=\"{$perm}\"></IIsWebDirectory>\r\n";
}

輸出範例:
<IIsWebDirectory Location="/LM/W3SVC/1/root/admin" AccessFlags="AccessRead | AccessScript"></IIsWebDirectory>

部署步驟

  1. 將腳本置於網站根目錄,瀏覽器開啟
  2. 勾選需調整的虛擬目錄
  3. 選擇執行權限、輸入站點 ID(可在 IIS 管理員查看)
  4. 提交複製 XML 內容,存為 iis_perm.xml
  5. 命令列執行 cscript adsutil.vbs ENUM /LM/W3SVC 確認站點 ID
  6. 使用 cscript iiscnfg.vbs /import iis_perm.xml 匯入(或透過 IIS 管理員「備份/還原配置」)

安全提醒

  • 選擇「腳本和可執行」會允許 .exe、.dll 執行,極高風險,介面已內建 JS 警示
  • 生產環境建議僅開啟「純腳本」權限
  • 操作前務必備份 IIS Metabase (%windir%\system32\inetsrv\metabase.xml)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved