如何使用get-acl powershell获得确切的权限?

k4ymrczo  于 2023-02-04  发布在  Shell
关注(0)|答案(1)|浏览(108)

我有一个脚本的问题,使用powershell中的get-acl并将其导出到文件。我正在尝试做的是从文件服务器导出所有权限具有isinherited标志Flase。这部分工作完美,但我只得到这些文件夹上的允许或拒绝类型。我需要的是知道给定文件夹的确切权限。该用户是否允许读取或写入,执行等这里是我所做的全部代码:

$OutFile = "C:\install\powershell\Permissions.txt"
$Header = "Folder Path,IdentityReference,AccessControlType,IsInherited,InheritanceFlags,PropagationFlags"
Del $OutFile
Add-Content -Value $Header -Path $OutFile 

$RootPath = "C:\install\powershell\"

$Folders = dir $RootPath -recurse | where {$_.psiscontainer -eq $true}

foreach ($Folder in $Folders){ 
$ACLs = get-acl $Folder.fullname | ForEach-Object { $_.Access } 
Foreach ($ACL in $ACLs){ 
if ($ACL.IsInherited -eq $false){ 
$OutInfo = $Folder.Fullname + "," + $ACL.IdentityReference + "," + $ACL.AccessControlType + "," + $ACL.IsInherited + "," + $ACL.InheritanceFlags + "," + $ACL.PropagationFlags 
Add-Content -Value $OutInfo -Path $OutFile 
}}}

所以我的问题是:我怎样才能添加$ACL.以获得确切的权限级别。这甚至是可能的吗?我怎样才能获得某种对象列表,我可以用来解析ACL s? I我很抱歉,如果我解释了我的问题错误或它已经得到了回答,但由于今天是我第一天使用powershell,我可能不知道如何搜索正确的答案。
最好的问候。
UPD:看起来我可以尝试使用$ACL. FileSystemRights,如果它给我我想要的,我会更新这个帖子。UPD2:是的,看起来我不得不在$Header中添加FileSystemRights,在$OutInfo中添加"+$ACL. FileSystemRights +",抱歉打扰了!但可能这会帮助某人得到他们需要的东西!:)

bvjveswy

bvjveswy1#

我想把递归设置到一定的深度。找到了一个解决方案:使用“*"代替-recurse。对于2个级别的深度:“**”等来源:http://powershell.com/cs/forums/p/11663/25754.aspx
谢谢

相关问题