2014-11-04 133 views
0

我正在嘗試權限添加到現有共享。該共享在Windows Server 2012(創建者所有者,系統...)上具有4個默認權限。Set-ACL刪除bultin帳戶

當我從我的Win7客戶端運行腳本時,它將刪除所有ntfs權限並僅添加腳本中的帳戶。有任何想法嗎???

$folder = Get-Acl "\\win-gv2fnajsqvu\a-og" 
$newACL = New-Object System.Security.AccessControl.FileSystemAccessRule("test\user2","FullControl","ContainerInherit,ObjectInherit","None","Allow") 
$folder.AddAccessRule($newACL) 
Set-Acl "\\win-gv2fnajsqvu\a-og" -aclobject $Folder  
+1

FWIW,我無法重現該問題。當我嘗試它時,它按預期工作。 – briantist 2014-11-04 17:29:10

+0

這些正在被刪除的繼承屬性?如果是的話,試着在'$ newACL'對象上將'SetAccessRuleProtection'強制設置爲'$ true'作爲「preserveInheritance」,看看是否有幫助。 – Kohlbrr 2014-11-04 17:54:48

+0

默認情況下保留現有的ACE。您需要運行'$ folder.SetAccessRuleProtection($ true,$ true)'來禁用繼承並刪除繼承的權限。 – 2014-11-04 18:00:50

回答

0

看起來像這些是被刪除的繼承屬性。嘗試強制SetAccessRuleProtection$true爲「preserveInheritance」的$folder對象:

$folder = Get-Acl "\\win-gv2fnajsqvu\a-og" 
$folder.SetAccessRuleProtection($true, $true) 
$newACL = New-Object System.Security.AccessControl.FileSystemAccessRule("test\user2","FullControl","ContainerInherit,ObjectInherit","None","Allow") 
$folder.AddAccessRule($newACL) 
Set-Acl "\\win-gv2fnajsqvu\a-og" -aclobject $folder 
+0

謝謝。有用! – logi 2014-11-05 13:32:25