PowerShell 5.0 PathTooLongException 错误

PowerShell 5.0 PathTooLongException Error

问题

正在接收 PathTooLongException - ...完全限定文件名必须少于 260 个字符,目录名必须少于 248 个字符。

OS

PowerShell 版本

.NET FrameWork 版本

代码

Get-ChildItem -Path $path -Directory -Recurse | Get-ACL
ForEach ($item in $pathmany) {
        $permissions = $item.access | where {$_.IdentityReference -like "*$target*"}
        $permissions.FullPath | where {$_.IdentityReference -like "*$target*"}
        if ($permissions.IdentityReference -like "*$target*") {
            $path = $item.Path.trim('Microsoft.PowerShell.Core\FileSystem::')
        }
}

到目前为止我尝试了什么

1 - 设置位置 "further into folder tree"(错误)

2 - 替代 TEMP "folder further into folder tree"(错误)

3 - \计算机名\"folder further into folder tree"\(错误)

4 - 使用 2019 服务器,我可以在其中将注册表编辑为 "LongPathsEnabled = 1" 我还尝试使用 \?\UNC\ 方法,但它返回了相同的错误。

也试过这段代码,还是报错

$folder = @{ Name = "\?\UNC"}
$folder.path = "folder further into folder tree"

$folder | ForEach-Object {
     $item = Get-ChildItem -Path $_.Path -Directory -Recurse | Get-ACL
}

询问我的主管是否可以升级到 PowerShell 6.0 或 7.0。

任何帮助或想法将不胜感激。

我将上述脚本与 PowerShell 7 一起使用,并且代码能够检索出现 LongPathException 错误的文件夹。但是,我收到一个新错误,我将 post 提出另一个问题。我能够想出并解决我的问题的答案如下。我能够在文件夹树 L:\Depts.

中计算出 145,000 多个文件夹

脚本问题错误

Get-ChildItem -Path "L:\Depts" -Directory -Recurse

安装 PowerShell 7.0 将更正错误

Get-ChildItem : The specified path, file name, or both are too long. The fully
qualified file name must be less than 260 characters, and the directory name must
be less than 248 characters.