我尝试使用Get-ACL
cmdlet读取各种文件夹的权限
它工作正常,我可以看到Get-ACL $path | %{$_.Access}
的授权用户。但我注意到缺少一些权限
如果我进入任何文件夹properties > Security (Tab) > Advanced
,我都能看到相应的权限及其适用的内容
某些权限设置为适用于nothing
,而Get-ACL
未显示这些权限。
这引出了我的问题:
有没有办法读出acl的Applies to
字段?
我尝试使用.NET函数[System.IO.Directory]::GetAccessControl()
,但它没有提供此信息。
非常感谢任何帮助或提示!
修改
为了澄清这个问题,我拍了一些截图:
这表示设置为“无”的权限 这似乎是一个错误,因为我无法为任何其他权限条目选择“无”。
这是通过Powershell返回的acl(缺少“OWNER RIGHTS”):
答案 0 :(得分:0)
适用于“没有”不是AFAIK的有效值,所以我们需要证明。
“适用于”字段是InheritanceFlags
和PropagationFlags
的组合,两者中的值“无”等于仅适用于此文件夹。这些将显示Get-ACL
。
PS C:\Users\frode> (Get-Acl .\Desktop\test).Access
#Applies to: Subfolder and files only
FileSystemRights : ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : frode-pc\frode
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : InheritOnly
#Applies to: This folder only
FileSystemRights : ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : frode-pc\frodetest
IsInherited : False
InheritanceFlags : None