icacls

顯示或修改指定檔案上的任意訪問控制清單(DACL),並將儲存的 DACL 套用至指定目錄中的檔案。

注意

此命令會取代 取代cacls 命令。

語法

icacls <filename> [/grant[:r] <sid>:<perm>[...]] [/deny <sid>:<perm>[...]] [/remove[:g|:d]] <sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<policy>[...]]
icacls <directory> [/substitute <sidold> <sidnew> [...]] [/restore <aclfile> [/c] [/l] [/q]]

參數

參數 說明
<檔名> 指定要顯示或修改 DACL 的檔案。
<目錄> 指定要顯示或修改 DACL 的目錄。
/t 在目前目錄及其子目錄中的所有指定檔案上執行作業。
/c 儘管發生任何檔案錯誤,仍會繼續作業。 仍會顯示錯誤訊息。
/l 在符號連結上執行作業,而不是它的目的地。
/q 隱藏成功訊息。
[/save <ACLfile> [/t] [/c] [/l] [/q]] 將所有相符檔案的 DACL 儲存至訪問控制清單 (ACL) 檔案,以供稍後搭配 /restore使用。
[/setowner <username> [/t] [/c] [/l] [/q]] 將所有相符檔案的擁有者變更為指定的使用者。
[/findsid <sid> [/t] [/c] [/l] [/q]] 尋找包含 DACL 且明確提及指定之安全性識別碼 (SID) 的所有相符檔案。
[/verify [/t] [/c] [/l] [/q]] 尋找所有具有非標準或長度與訪問控制專案 (ACE) 計數不一致的檔案。
[/reset [/t] [/c] [/l] [/q]] 以所有相符檔案的預設繼承 ACL 取代 ACL。
[/grant[:r] <sid>:<perm>[...]] 授與指定的使用者訪問許可權。 許可權會取代先前授與的明確許可權。

未新增 :r,表示許可權會新增至任何先前授與的明確許可權。

[/deny <sid>:<perm>[...]] 明確拒絕指定的使用者訪問許可權。 已針對已陳述的許可權新增明確拒絕 ACE,並移除任何明確授與中的相同許可權。
[/remove[:g | :d]] <sid>[...][/t][/c][/l][/q] 從 DACL 移除指定 SID 的所有專案。 此指令也可以使用:
  • :g - 移除指定 SID 的所有授與許可權。
  • :d - 移除指定 SID 的所有拒絕許可權。
[/setintegritylevel [(CI)(OI)] <層級>:<原則>[...]] 明確將完整性 ACE 新增至所有相符的檔案。 層級可以指定為:
  • l - 低
  • m- 中
  • h - 高
完整性 ACE 的繼承選項可能位於層級之前,而且只會套用至目錄。
[/substitute <sidold><sidnew> [...]] 將現有的 SID (sidold) 取代為新的 SID (sidnew)。 需要使用 搭配 <directory> 參數。
/restore <ACLfile> [/c] [/l] [/q] 將儲存的 DACL 從 <ACLfile> 套用至指定目錄中的檔案。 需要使用 搭配 <directory> 參數。
/inheritancelevel: [e | d | r] 設定繼承層級,這可以是:
  • e - 啟用繼承
  • d - 停用繼承並複製 ACE
  • r - 停用繼承並只移除繼承的 ACE

備註

  • SID 可以是數值或易記名稱格式。 如果您使用數值形式,請將通配符 * 貼到 SID 的開頭。

  • 此指令會將 ACE 項目標準順序保留為:

    • 明確拒絕

    • 明確授與

    • 繼承的拒絕

    • 繼承的授與

  • <perm> 選項是一種許可權遮罩,可透過下列其中一種形式指定:

    • 一連串簡單許可權(基本許可權):

      • F - 完整存取

      • M- 修改存取權

      • RX - 讀取和執行存取權

      • R - 唯讀存取

      • W - 唯讀存取

    • 特定許可權括弧中的逗號分隔清單(進階許可權):

      • D - 刪除

      • RC - 讀取控制件 (讀取權限)

      • WDAC - 寫入 DAC (變更權限)

      • WO - 寫入擁有者 (取得擁有權)

      • S - 同步處理

      • AS - 存取系統安全性

      • MA - 允許的最大值

      • GR - 一般讀取

      • GW - 泛型寫入

      • GE - 泛型執行

      • GA - 全部一般

      • RD - 讀取資料/列表目錄

      • WD - 寫入資料/新增檔案

      • AD - 附加資料/新增子目錄

      • REA - 讀取擴充屬性

      • WEA - 寫入擴充屬性

      • X - 執行/周遊

      • DC - 刪除子系

      • RA - 讀取屬性

      • WA - 寫入屬性

    • 繼承權限可能位於 <perm> 表單之前:

      • (I) - 繼承。 ACE 繼承自父容器。

      • (OI) - 對象繼承。 此容器中的物件將會繼承此 ACE。 僅適用於目錄。

      • (CI) - 容器繼承。 此父容器中的容器將會繼承此 ACE。 僅適用於目錄。

      • (IO) - 僅限繼承。 ACE 繼承自父容器,但不適用於物件本身。 僅適用於目錄。

      • (NP) - 請勿傳播繼承。 容器和對象繼承自父容器的 ACE,但不會傳播至巢狀容器。 僅適用於目錄。

範例

若要將 C:\Windows 目錄中所有檔案的 DACL 及其子目錄儲存至 ACLFile 檔案,請輸入:

icacls c:\windows\* /save aclfile /t

若要還原 C:\Windows 目錄及其子目錄中 ACLFile 內每個檔案的 DACL,請輸入:

icacls c:\windows\ /restore aclfile

若要將 User1 Delete 和 Write DAC 許可權授與名為 Test1 的檔案,請輸入:

icacls test1 /grant User1:(d,wdac)

若要將 SID S-1-1-0 所定義的使用者授與名為 Test2 的檔案刪除和寫入 DAC 許可權,請輸入:

icacls test2 /grant *S-1-1-0:(d,wdac)