5

Я пытаюсь запустить 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.

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

0