Caminho muito longo, mas não é?

5

Estou tentando executar um Get-ChildItem -Recurse em um compartilhamento de arquivos e estou recebendo alguns erros de "caminho muito longo". Mas quando eu cavar, algumas delas não são.

Estou usando -ErrorVariable para capturar os detalhes do erro em uma variável chamada $ErrLog . Então, o seguinte para registrá-los em um 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"
}

O código acima parece estar funcionando bem, mas os dados que estou recebendo não combinam totalmente com os detalhes do erro.

Os detalhes do erro no console indicam que os nomes dos arquivos devem ter menos de 260 caracteres e os nomes dos diretórios devem ser menores que 248. Faz sentido o suficiente. No entanto, todos os caminhos que estão sendo registrados são diretórios e alguns deles têm menos de 200 caracteres!

O mais longo que eu tenho no log é de 259 caracteres. Aquele e outros acima de 248 caracteres fazem sentido. O mais curto é 186, e há muitos outros mais curtos que 248.

Por que estou recebendo esses erros "muito longos" em diretórios que não são? Existe algo que os dados de erro devem estar dizendo que eu não estou capturando no log?

    
por Iszi 04.08.2015 / 23:51

0 respostas

Tags