我在用戶目錄中有多個文件夾,這些文件夾以錯誤的ACL結尾。我想找到一種方法來使用PowerShell(或者一個常規的命令提示符,如果更簡單的話)刪除現有的ACL並將其替換爲應該從其父文件夾繼承的內容。訣竅是隻有擁有該文件夾的用戶纔有權訪問它(get-acl'。\ folder'返回「試圖執行未經授權的操作」)。這些文件夾都位於Windows Server 2003 Std系統上。使用PowerShell替換具有繼承默認值的ACL
0
A
回答
0
試試這個:
#You have a textfile with FOLDER-paths
#$a = Get-Content d:\list.txt
#You have an array of FOLDER-paths
$a = @("d:\mytestfolder", "d:\my2ndtestfolder")
$a | % {
#Take ownership to admin-group
& TAKEOWN /F $_ /A /R /D Y
#Reset acl to default recursively
& ICACLS $_ /RESET /T /C
}
+0
謝謝!這基本上是我最終做的,雖然我沒有打擾PowerShell。我不知道你可以「打電話」那樣的常規命令。 – Caynadian 2013-02-08 16:15:15
+0
如果使用調用操作符('&'),則將字符串的其餘部分轉換爲命令;) – 2013-02-08 16:17:54
0
事實證明,這是很容易與普通的命令提示符工具來完成。附件中的腳本做什麼,我需要在短短的幾行:
@Echo Off
@Echo Taking ownership of files in %1
takeown /f %1 /r /d Y /a > :nul
@Echo Restoring default ACLs in %1
icacls %1 /reset /t /c > :nul
@Echo Restoring ownership of files to %2
subinacl /file %1 /setowner=%2 > :nul
subinacl /subdirectories %1\*.* /setowner=%2 > :nul
相關問題
- 1. 具有默認參數的類繼承
- 2. Python的默認繼承?
- 3. PHP - 繼承功能默認值
- 4. .Net繼承控件屬性默認值
- 5. 使用具有繼承
- 6. 熊貓替換默認值
- 7. 沒有默認構造函數 - 繼承
- 8. 應該如何創建從NumPy ndarray繼承並且具有默認值的類?
- 9. 爲什麼在使用TPH繼承時忽略默認值?
- 10. dojo:使用默認值繼承 - mixin不會發生
- 11. 使用Linq to Entities查詢中的默認值替換空值
- 12. 麪包::板的默認/可替換值
- 13. C#中的默認繼承類型
- 14. 的Java 8默認方法繼承
- 15. 有條件地用Pandas中的默認值替換幾列
- 16. 繼承:沒有適當的默認構造函數可用
- 17. 替換默認的MessageBox
- 18. PowerShell DataGridView ComboBoxColumn默認值
- 19. 使用具有繼承類值的基類函數
- 20. SVG內聯 - 默認或繼承高度
- 21. C++繼承功能默認操作
- 22. 從默認樣式繼承樣式
- 23. 骨幹類模型不繼承默認
- 24. 具有包訪問權的交叉包繼承(默認訪問權)
- 25. C++:一個必須具有默認超類構造函數的繼承?
- 26. 上繼承.NET控件更改屬性的默認值
- 27. 模型的繼承和屬性默認值
- 28. 從基類繼承函數聲明中參數的默認值
- 29. 從類繼承的類沒有默認的構造函數
- 30. 替換爲具有綁定規則和默認值的不建議使用的SQL Server用戶定義類型
http://mattgemmell.com/2008/12/08/what-have-you-tried/ – 2013-02-08 15:32:33
@CB:我已經試過一些來自我發現的其他密切相關查詢的腳本,但所有這些腳本都失敗了,因爲上面的消息有所變化。我認爲PowerShell是新事物,使用它可以更容易地完成我的任務,但正如您在下面的答案中看到的,使用舊的命令提示符會更容易。 – Caynadian 2013-02-08 16:10:46