报告文件夹和子文件夹权限以及所有文件

Report on folder and sub folder permissions along with all files

提问人:SuperZee 提问时间:11/17/2023 最后编辑:litSuperZee 更新时间:11/18/2023 访问量:22

问:

目前有此脚本,该脚本将报告顶级文件夹和子文件夹中的权限。我还需要它来报告所有文件。我已经安装了 Export-Excel 模块,以便它可以导出到 excel 文件。

$FolderPath = Get-ChildItem -Directory -Path "E:\TEMP\" -Recurse -Force
$Output = @()
ForEach ($Folder in $FolderPath) {
    $Acl = Get-Acl -Path $Folder.FullName
    ForEach ($Access in $Acl.Access) {
        $Properties = [ordered]@{'FolderName'=$Folder.FullName;'Group/User'=$Access.IdentityReference;'Permissions'=$Access.FileSystemRights;'Inherited'=$Access.IsInherited}
        $Output += New-Object -TypeName PSObject -Property $Properties 
    } 
} 
$Output | Export-Excel E:\TEMP\Report.xlsx -TableName Permissions -AutoSize

非常感谢ppl可以提供的任何帮助。

Excel PowerShell 权限 报表

评论

1赞 Doug Maurer 11/18/2023
实际问题是什么?

答:

0赞 Vern_Anderson 11/18/2023 #1

由于您使用“-Directory”开关设置$FolderPath变量,因此您只会在变量中获取文件夹/目录。

您需要删除该开关,或者创建代码的完全其他副本,将第 1 行替换为新变量,例如 $Filepath

$Filepath = Get-ChildItem -File -Path “E:\TEMP” -递归 -Force

然后遍历每个文件 ACL 对象,就像对文件夹所做的那样

更新

我刚刚在删除“-Directory”开关的情况下对其进行了测试,它为文件和文件夹重新保留了 ACL 对象。