2012-10-29 2 views
1

파일 서버에서 대부분의 공간을 차지하는 파일/파일 유형을 확인하고 싶습니다. 실제로 많은 사용자가 이름/경로 길이가 260 자 이상인 파일을 만들었 기 때문에 (작동하지 않습니다.)Get-Childitem 해결 방법

다음 단계는 다음과 같은 임시 해결책을 작성하는 것입니다. . MAX_PATH var에 제한없이 표시 뭔가, 크기 파일 이름과 경로를 사용하여 (ROBOCOPY은) 다음

내 기능입니다 :

Function Get-RoboFileSize($source_name){ 

$filelog=robocopy.exe /e /l /njh /njs /ndl /fp /nc /bytes $source_name $env:Temp 

foreach ($item in $filelog){ 

    if ($item -like "*$source_name*"){ 

     $base=$item -Replace "[\s]","" 
     $Filename=$base -Replace "^[0-9]{1,}","" 
     $Filesize=$base -Replace "[^\d][[email protected]#\^\$&\*\(\)-_\+=\[\]\{\}\|\\,\.\?\!\%\§öäüÖÄÜßáàðÞ]{1,}","" 

     New-Object PSObject -Property @{ 
              Filename=$Filename 
              FileSize= ("{0:#}" -f($Filesize/1MB)) 

     }    
    } 

} 

}

이 방법을 작동하지만 내 문제는 많이 소모한다는 것입니다 자원의

다른 사람이이 기능을 향상시키는 방법을 알고 있습니까? 아마도 다른 해결 방법에 대한 아이디어일까요?

+1

Windows 2008R2를 실행하고 있습니까? 그렇다면 파일 서비스 리소스 관리자의 보고서를 사용해보십시오. – vonPryz

+0

다른 os (2003, 2003 R2, 2008, 2008 R2)를 사용하여 여러 서버에서이를 평가하고 각 서버에서 보내는 스크립트와 100 개의 요약을 예약하십시오. – PointerNullException

답변

3

마이크로 소프트는 path length limitations을 알고 있습니다.

C#에서 해결 방법을 제공하는 문서가 있습니다. 퍼포먼스에 대해 정말로 신경 쓰는 경우, 이것은 최선의 방법입니다. Long Paths in .NET, Part 1 of 3 [Kim Hamilton]

Powershell을 고수하려면 powershell.com forums에 대한 다른 해결 방법을 참조하십시오.

+0

힌트를 보내 주셔서 감사합니다. 나는 그것을 시험 할 것이다. 다음은 robocopy로 접근하기 위해 읽은 기사입니다. http://social.technet.microsoft.com/wiki/contents/articles/12179.net-powershell-path-too-long-exception-and-a-net-powershell-robocopy-clone-en-us.aspx – PointerNullException