2014-11-04 120 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