Windows
Windows - 僅在文件夾上設置權限而不遞歸子對象(大型目錄樹慢)
很多時候我希望只對文件夾設置權限,但我嘗試過的所有程序都會在此過程中遞歸所有子文件和文件夾。由於這很慢,有什麼辦法可以避免這種情況?
我嘗試過的事情:
- Windows 資源管理器:失敗,正如您在 gui 中看到的那樣,它將遍歷所有子對象。
- Helge Klein 的SetAcl.exe:失敗,正如一個名為ProcessMonitor的漂亮工具所揭示的那樣
SetACL.exe -on "PATH" -ot file -actn ace -ace "n:USER;p:read_ex;i:np;m:set" -rec no
對於那些不知道的人,“i:np”子句意味著該權限應適用於“僅此文件夾”。
- icacls:失敗(程序監視器)
icacls "PATH" /grant USER:(NP)RX
(與上面的 setacl 命令做同樣的事情)(命令行只是範例)
當程序更改目錄的權限時,現代 Windows API會自動通過目錄樹遞歸,沒有選項可以防止這種情況發生。Windows 也不夠聰明,無法意識到特定更改何時對子對像沒有影響。
但是,如果程序使用較舊的SetFileSecurity 函式,則不會發生這種情況。
因此,您可能會嘗試尋找舊的實用程序,例如,為 Windows 2000 或更早版本編寫的實用程序。
或者你可以使用內置的
cacls
命令行工具,使用起來沒有那麼方便icacls
並且被官方棄用,但它不會影響子對象,除非你通過/t
選項。