问题
接收 PathTooLongException - ... 完全限定的文件名必须少于 260 个字符,并且目录名必须少于 248 个字符。
操作系统
- Windows Server 2008 R2 企业版
PowerShell 版本
- PS版本 5.1.14409.1018
- 构建版本 10.0.14409.1018
- CLRVersion 4.0.30319.36543
- WSManStackVersion 3.0
- PSRemotingProtocolVersion 2.3
- 序列化版本 1.1.0.1
.NET 框架版本
- 4.5.51209
代码
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 - 设置位置“进一步进入文件夹树”(错误)
2 - Subst TEMP“文件夹进一步进入文件夹树”(错误)
3 - \计算机名\“文件夹进一步进入文件夹树”\(错误)
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。
任何帮助或想法将不胜感激。