2013-01-18 38 views
0

我正在研究通過添加額外權限來對文件夾上的ACL進行擴展的小腳本;我在執行「Set-ACL」命令時發現錯誤;請讓我知道我做錯了什麼。通過Powershell更改ACL時的獲取和錯誤

$AddAccessRule = New-Object security.accesscontrol.filesystemaccessrul("CREATOROWNER",@("ReadAndExecute,Synchronize"),"ContainerInherit,Objectinherit","Inheritonly","Allow") 
$objacl = get-acl $FolderPath 
$ObjAcl.AddAccessRule($AddAccessRule) 
Set-acl $FolderPath $objacl 

當我執行它時發生follwoing錯誤;

使用「1」參數調用「AddAccessRule」異常:「部分或全部標識引用無法翻譯」。在C:\ Users \ kakulva \ Desktop \ Scripts \ CreatorOwner \ ACL.ps1:10 char:1 + $ ObjAcl.AddAccessRule($ AddAccessRule) + ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:IdentityNotMappedException

讓我知道如果任何quetions或澄清要求。

+1

有出現在你的示例代碼錯別字,你可以檢查一下嗎?例如'CREATOROWNER'是否準確或是否是'CREATOR OWNER'?前者是你所擁有的,但應該是後者......除非是這個問題。 –

+0

感謝Mike現在的工作,是的,兩者之間應該有空間。 – Darktux

回答

3

這工作(或至少不返回錯誤):

$AddAccessRule = New-Object 'security.accesscontrol.filesystemaccessrulE'("CREATOR OWNER",@("ReadAndExecute,Synchronize"),"ContainerInherit,Objectinherit","Inheritonly","Allow") 
$objacl = get-acl C:\A 
$ObjAcl.AddAccessRule($AddAccessRule) 
Set-acl -PATH C:\A $objacl