我們現在用指令來達成
takeown是寫入擁有者,一般是administrator
指令是
:TAKEOWN /F 目的資料夾
/R /A \\ /F是指定檔案或資料夾名稱
\\ /R是套用於目錄或子目錄
\\ /A是設定為系統管理者
一定要先寫入擁有者,不然無法加權限
寫入權限
指令是
:icacls 目的資料夾 /grant administrator:f
/inheritance:e /T
\\ /grant administrator:f 加入administrator完整權限
如要加入網域帳號,/grant XXX\CCC:f,XXX是網域,CCC是帳號
\\
/inheritance:e 繼承父系"沒有繼承父系,某些資料夾的權限會空白"
\\ /T
套用於目錄或子目錄
其他的指令如下
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
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 所定義的使用者。
太感謝這位先進了.
回覆刪除Windows7(NTFS)的檔案權限困擾了我很久很久, 我從 Windows 7 升級到 Windows 10 之後就發生了這個問題, 後來換電腦又回到了 Windows 7, 檔案權限就這樣子亂的不能再亂了.
找了很多的網頁都沒有效果, 只有這篇, 剛才試了一下, 果然順利的重置目錄&檔案的權限, 正常使用中, 感謝!
感謝您的文章, 謝謝您的技術分享。
回覆刪除