我正在寻找一种方法来递归遍历我的整个文件共享(相当大的 3TB 文件)并列出我无权访问的所有文件/文件夹。由于迁移和大路径(超过 255 个字符)上的一些错误,我们发现一些文件夹/文件丢失了所有权限,需要一种方法来找到它们。目前作为域管理员用户,我无法列出权限或所有者。我可以控制它并重置权限,但是我有太多的文件/文件夹,我想将其输出到 CSV 文件或其他内容。
我试过以下:
get-childitem "\,\fileshare\f$\folder\etc" -recurse | get-acl
Run Code Online (Sandbox Code Playgroud)
这似乎工作得很好,它为我提供了所有存在并对其具有适当权限的文件/文件夹的 ACL。但是一旦它进入我无权访问的文件夹,我就会收到以下错误:
Get-Acl : Attempted to perform an unauthorized operation.
At line:1 char:133
+ get-childitem "\,\fileshare\f$\folder\etc" -re
curse | get-acl <<<<
+ CategoryInfo : NotSpecified: (:) [Get-Acl], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetAclCommand
Run Code Online (Sandbox Code Playgroud)
这些是我想记录到 CSV/TXT 文件中的错误,并忽略所有其余的权限,如果每个错误方式也可以以更多行输出,那将是理想的。
只是想知道是否有人对我应该如何进行有想法或提示?
(请注意上面的路径中有逗号是故意不解析为真实路径
\,\fileshare\f$\folder\etc)
Run Code Online (Sandbox Code Playgroud)
谢谢!