Powershell
Windows 等效於“chmod -R aw”
什麼是 Windows 等效於“chmod -R aw”以遞歸方式刪除目錄的寫權限?棘手的部分是讓其餘權限保持不變(例如,如果 subfolderA 只能由 groupA 讀取,則不要向所有人打開文件夾權限)。
我想說沒有“等效”的方式,因為Windows 上的訪問控制設計與Linux 上的完全不同。
無論如何,您可以使用icacls命令、PowerShell 腳本、VBScript 等來實現類似的效果。
對於每個文件,都可以為使用者或組附加授予規則和拒絕規則。並且拒絕規則會覆蓋授予規則。因此,根據文件上現有的 ACL 配置,您可能有不同的方法。例如:
- 使用者繼承讀寫權限:添加規則拒絕寫入
- 使用者繼承讀取權限並且文件上已經存在允許寫入的規則:只需刪除允許寫入規則
這是案例 1 的範例,它使用以下命令添加拒絕一堆寫權限的規則
icacls
:icacls C:\myFolder /deny UserOrGroup:(WD,AD,WDAC,WO,WEA,WA,DE,DC) /T
要為多個使用者/組添加規則,您需要在批處理腳本中使用循環包裝它。
由於您在問題中標記了 powershell,因此類似於上述
icacls
範例的 PowerShell 腳本是:$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("UserOrGroup", "DeleteSubdirectoriesAndFiles, Write, Delete, ChangePermissions, TakeOwnership", "Deny") Get-ChildItem 'C:\myFolder' -Recurse | ForEach-Object { $acl = Get-Acl $_.FullName $acl.AddAccessRule($rule) Set-Acl $_.FullName $acl }
PowerShell 更複雜,但提供了更大的靈活性。例如,您可以從文件/文件夾的現有規則中獲取使用者/組,並動態添加拒絕規則。
注意:您可能可以在serverfalult、superuser或stackoverflow中找到更多相關的問題和範例,其中包含“windows chmod”、“powershell acl”、“icacls”等關鍵字。