Windows

Windows - 僅在文件夾上設置權限而不遞歸子對象(大型目錄樹慢)

  • April 30, 2019

很多時候我希望只對文件夾設置權限,但我嘗試過的所有程序都會在此過程中遞歸所有子文件和文件夾。由於這很慢,有什麼辦法可以避免這種情況?

我嘗試過的事情:

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選項。

引用自:https://serverfault.com/questions/965336