Путь слишком длинный, но это не так?

Путь слишком длинный, но это не так?

Я пытаюсь запустить Get-ChildItem -Recurseфайл с общим доступом и получаю несколько ошибок "path too long". Но когда я углубляюсь в это, некоторые из них не являются.

Я использую -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.

Почему я получаю эти ошибки "path too long" в каталогах, которые не являются таковыми? Есть ли что-то, о чем должны мне сообщать данные об ошибках, которые я просто не фиксирую в журнале?

Связанный контент