首頁 繪圖設計 工作閒聊 比賽活動 美術討論 標籤 圖片
takeown & icacls: 改變 Windows 7/8/10 改變檔案擁有權、設定檔案權限
Type(Type) 2015/10/26 18:35

takeown & icacls: 改變 Windows 7/8/10 檔案擁有權、設定權限

可解決 trustedinstaller 檔案無法修改、無法刪除的問題




takeown: 可改變檔案與目錄「擁有者(Owner)」
icacls: 可設定檔案與目錄「權限(ACLs)」

使用 takeown & icacls 這兩個指令,可解決 trustedinstaller 檔案無法修改、無法刪除的問題。

Example: Delete Windows.Old HOWTO


Takeown: 改變檔案擁有權


代碼:

C:\WINDOWS\system32>takeown /?

TAKEOWN [/S system [/U username [/P [password]]]]
        /F filename [/A] [/R [/D prompt]]

描述:
    這個工具可以讓系統管理員恢復
    之前被拒絕重新指派檔案擁有權。

參數清單:
    /S           system          指定要連線的遠端
                                 系統。

    /U           [domain\]user   指定執行命令的使用者
                                 內容。

    /P           [password]      指定使用者密碼。
                                 如果省略,會出現密碼輸入要求。

    /F           filename        指定檔案名稱或目錄
                                 名稱模式。萬用字元 "*" 可以用來指定
                                 模式。允許
                                 sharename\filename。

    /A                           將擁有權給予系統管理員,
                                 而非目前的使用者。

    /R                           遞迴搜尋: 指示工具在指定的目錄
                                 和所有子目錄中的檔案
                                 操作。

    /D           prompt          當目前的使用者沒有
                                 目錄 "list folder" 使用權時,所使用的
                                 預設回答。在子目錄遞迴操作時將發生
                                 此情況。要取得擁有權,
                                 有效值為 "Y",要略過則是 "N"。

    /SKIPSL                      請勿接著符號連結。
                                 僅可與 /R 搭配使用。

    /?                           顯示這個說明訊息。

    注意: 1) 如果沒有指定 /A,檔案擁有權將給予
             目前登入的使用者。

          2) 不支援混合使用 "?" 和 "*"。

          3) 要壓抑確認提示,請用 /D。

範例:
    TAKEOWN /?
    TAKEOWN /F lostfile
    TAKEOWN /F \\system\share\lostfile /A
    TAKEOWN /F directory /R /D N
    TAKEOWN /F directory /R /A
    TAKEOWN /F *
    TAKEOWN /F C:\Windows\System32\acme.exe
    TAKEOWN /F %windir%\*.txt
    TAKEOWN /S system /F MyShare\Acme*.doc
    TAKEOWN /S system /U user /F MyShare\MyBinary.dll
    TAKEOWN /S system /U domain\user /P password /F share\filename
    TAKEOWN /S system /U user /P password /F Doc\Report.doc /A
    TAKEOWN /S system /U user /P password /F Myshare\*
    TAKEOWN /S system /U user /P password /F Home\Logon /R
    TAKEOWN /S system /U user /P password /F Myshare\directory /R /A

C:\WINDOWS\system32>



icacls: Takeown: 改變檔案擁有權


代碼:

C:\WINDOWS\system32>icacls

ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
    將符合名稱之檔案與資料夾的 DACL 儲存至 aclfile,以供稍後與
    /restore 搭配使用。請注意,這不會儲存 SACL、擁有者或完整
    性標籤。

ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile
                 [/C] [/L] [/Q]
    將儲存的 DACL 套用到目錄中的檔案。

ICACLS name /setowner user [/T] [/C] [/L] [/Q]
    變更所有相符名稱的擁有者。此選項不會強制變更擁有權; 如果要強制變更擁有
    權,請使用 takeown.exe 公用程式。

ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
    尋找內含明確提及 Sid 之 ACL 的所有相符名稱。

ICACLS name /verify [/T] [/C] [/L] [/Q]
    尋找含有未使用標準格式的 ACL 或長度與 ACE 計數不一致的所有檔案。

ICACLS name /reset [/T] [/C] [/L] [/Q]
    針對所有符合的檔案,使用預設繼承的 ACL 取代 ACL。

ICACLS name [/grant[:r] Sid:perm[...]]
       [/deny Sid:perm [...]]
       [/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
       [/setintegritylevel Level:policy[...]]

    /grant[:r] Sid:perm 授與指定的使用者存取權限。若加上 :r,該權限便會取
        代先前授與的明確權限。若不加上 :r,則會將權限加入先前授與的任何明
        確權限。

    /deny Sid:perm 明確拒絕指定的使用者存取權限。對指定的權限新增明確拒絕的
        ACE,並將任何明確授與中的相同權限移除。

    /remove[:[g|d]] Sid 會移除 ACL 中 Sid 的所有符合項目。若加上 :g,會將授
        與該 Sid 之權限的所有符合項目移除。若加上 :d,則會將拒絕該 Sid 之權
        限的所有符合項目移除。

    /setintegritylevel [(CI)(OI)]Level 明確地新增完整性 ACE 至所有符合的檔
        案。可指定下列層級的其中一個:
            L[ow]
            M[edium]
            H[igh]
        完整性 ACE 的繼承選項具有高於層級的優先性,且只會套用到目錄。

    /inheritance:e|d|r
        e - 啟用繼承
        d - 停用繼承並複製 ACE
        r - 移除所有繼承的 ACE


注意:
    Sid 的格式可以是數字或好記的名稱。如果指定使用數字格式,請在 SID 的開頭
    加上 *。

    /T 指示要在 name 指定之目錄下的所有相符檔案/目錄上執行此操作。

    /C 指示不論發生任何檔案錯誤,都繼續執行此操作。仍會顯示錯誤訊息。

    /L 指示此操作會在符號連結 (而非其目標) 上執行。

    /Q 指示 icacls 應隱藏成功訊息。

    ICACLS 保留 ACE 項目的標準順序:
            明確拒絕
            明確授與
            繼承拒絕
            繼承授與

    perm 是權限遮罩,可使用下列其中一種格式來指定:
        一連串簡單權限:
                N - 不允許存取
                F - 完整存取權
                M - 修改存取權
                RX - 讀取和執行存取權
                R - 唯讀存取權
                W - 唯寫存取權
                D - 刪除存取權
        在括號中以逗號分隔特定權限的清單:
                DE - 刪除
                RC - 讀取控制
                WDAC - 寫入 DAC
                WO - 寫入擁有者
                S - 同步
                AS - 存取系統安全性
                MA - 允許的最大值
                GR - 一般讀取
                GW - 一般寫入
                GE - 一般執行
                GA - 一般所有權限
                RD - 讀取資料/列出目錄
                WD - 寫入資料/新增檔案
                AD - 附加資料/新增子目錄
                REA - 讀取擴充屬性
                WEA - 寫入擴充屬性
                X - 執行/周遊
                DC - 刪除子系
                RA - 讀取屬性
                WA - 寫入屬性
        繼承權限的優先順序高於上述任一種格式,且僅套用到目錄:
                (OI) - 物件繼承
                (CI) - 容器繼承
                (IO) - 僅繼承
                (NP) - 不傳播繼承
                (I) - 從父容器繼承的權限

範例:

        icacls c:\windows\* /save AclFile /T
        - 會將 c:\windows 及其子目錄下所有檔案的 ACL 儲存到 AclFile。

        icacls c:\windows\ /restore AclFile
        - 會還原 AclFile 之中每個檔案的 Acl,而 AclFile 位於 c:\windows
          及其子目錄下。

        icacls file /grant Administrator:(D,WDAC)
        - 會將檔案的刪除和寫入 DAC 權限授與使用者 Administrator。

        icacls file /grant *S-1-1-0:(D,WDAC)
        - 會將檔案的刪除和寫入 DAC 權限授與 sid S-1-1-0 所定義的使用者。


Type(Type) 2017/1/4 14:11
在大部分狀況下,takeown 是 OK 的,

但當 file/dir 整條路徑超過 255 bytes ,且其值為 UNICODE
(或定一定長度或者 non-ascii ,這其實不是很確定)

takeown 可能會 failed

此時我們需使用 Windows GUI mode。

(21,482 views)
[更多討論] 討論區 Windows, Linux, Perl, PHP, C/C++, Driver, Web 理論、應用、硬體、軟體

"takeown & icacls: 改變 Windows 7/8/10 改變檔案擁有權、設定檔案權限" 傳統頁面(電腦版)

首頁 繪圖設計 工作閒聊 比賽活動 美術討論 標籤 圖片
傳統桌面版 [ 登入/註冊 ]
© Vovo2000.com Mobile Version 小哈手機版 2024