경로가 너무 길지만 그렇지 않나요?

경로가 너무 길지만 그렇지 않나요?

Get-ChildItem -Recurse파일 공유에 대해 실행하려고 하는데 "경로가 너무 김" 오류가 발생합니다. 하지만 자세히 들여다보면 그렇지 않은 경우도 있습니다.

-ErrorVariable오류 세부 정보를 이라는 변수에 캡처하는 데 사용하고 있습니다 $ErrLog. 그런 다음 다음을 수행하여 CSV에 기록합니다.

if ($ErrLog.Length -ne 0)
{
    $ErrLog | ForEach-Object {

        # Gather details of interest.
        $ErrTarget = $_.TargetObject
        $ErrReason = $_.CategoryInfo.Reason

        # Write data to custom PowerShell object.
        $ErrObject = New-Object PSObject
        $ErrObject | Add-Member -MemberType NoteProperty -Name 'Target Path' -Value $ErrTarget
        $ErrObject | Add-Member -MemberType NoteProperty -Name 'Error Reason' -Value $ErrReason

        # Add error to log variable.
        $ErrList += $ErrObject
    }
}

# Announce number of errors, and write to log as needed.
if ($ErrList.Length -eq 0)
{
    Write-Output "No errors encountered.`n"
}
else
{
    $ErrList | Export-CSV $LogErrors -NoTypeInformation
    $ErrorsCount = $ErrList.Length
    Write-Output "Logged $ErrorsCount errors.`n"
}

위의 코드는 정상적으로 작동하는 것처럼 보이지만, 이 코드에서 얻은 데이터는 오류 세부정보와 완전히 일치하지 않습니다.

콘솔의 오류 세부 정보에는 파일 이름이 260자 미만이어야 하고 디렉터리 이름은 248자 미만이어야 한다고 나와 있습니다. 충분히 이해가 됩니다. 그러나 기록되는 모든 경로는 디렉터리이며 그 중 일부는 200자보다 훨씬 짧습니다!

로그에 있는 가장 긴 문자는 259자입니다. 그 하나와 248자를 초과하는 다른 것들도 의미가 있습니다. 가장 짧은 것은 186이고, 248보다 짧은 것도 많이 있습니다.

그렇지 않은 디렉터리에서 "경로가 너무 김" 오류가 발생하는 이유는 무엇입니까? 내가 로그에 캡처하지 않고 있다는 것을 오류 데이터가 나에게 알려주어야 하는 것이 있습니까?

관련 정보