2014-09-11 313 views
17

我想在應用文件夾權限時使用「默認」選項;因此,我的意思是在「屬性」中爲文件夾使用「完全控制,寫入,讀取等」。PowerShell設置文件夾權限

下面的腳本作品添加的用戶,但它適用「特殊權限」 - 不只是那些勾選框爲那些在文件夾的屬性菜單中看到:

$Acl = Get-Acl "\\R9N2WRN\Share" 

$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule ("user","FullControl","Allow") 

$Acl.SetAccessRule($Ar) 
Set-Acl "\\R9N2WRN\Share" $Acl 

什麼時我做錯了嗎?

回答

32

FileSystemAccessRule()構造函數中指定繼承可修復此問題,如下面修改的代碼所示(請注意在"FullControl""Allow"之間插入兩個新的構造函數參數)。

$Acl = Get-Acl "\\R9N2WRN\Share" 

$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("user", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow") 

$Acl.SetAccessRule($Ar) 
Set-Acl "\\R9N2WRN\Share" $Acl 

根據this topic

「當你創建一個FileSystemAccessRule你的 InheritanceFlags屬性設置爲無的方式。在GUI中,這個 相當於ACE與應用到框設置爲「僅此文件夾」, ,並且該類型的條目必須通過高級 設置進行查看。「

我測試了修改,它的工作原理,但當然信貸是由於MVP發佈該主題的答案。

0

使用PowerShell的設置權限(文件/目錄)又如:

請驗證是否權限

獲取-ACL 「C:\ file.txt的」 | FL *

申請完全權限爲大家

$ ACL =獲取-ACL 「C:\ file.txt的」

的$ args = 「人人」, 「FullControl」,「允許「

$ accessRule =新物體System.Security.AccessControl.FileSystemAccessRule的$ args

$ acl.SetAccessRule($ accessRule)

$ acl | Set-Acl「C:\ file.txt」

希望這會有所幫助