이 스크립트 코드는 함수 내에서 SharePoint 사이트 (웹)에 액세스하고 있습니다. 함수가 끝날 때 처리해야하는 SPWeb 개체를 만들어 메모리 누수를 방지합니다. 일반적으로 객체를 처분하는 방법은 $web.dispose()
과 같습니다. 이 경우 SPWeb 개체가 만들어지고 파이프 라인에서 사용되지만 이름은 없습니다.powershell 파이프 라인 개체의 올바른 처분
function foobar {
$x = Get-SPWeb -Identity "http://mylocalsite/Sites/test1/test2" |
ForEach-Object {$_.Lists | Where {$_.Title -EQ "someLibrary"} |
Select ID }
}
I는 SPWeb 개체가 자동으로 파이프 라인의 끝에서 처리되지 않고, 메모리 누설을 일으키는 것으로 의심 : 여기
코드이다.파이프 라인에서 생성 된 개체는 어떻게 처리합니까? 나도 할 필요가 있니?
FYI : $x
에는 'Dispose'라는 메서드가 없으므로 $x.Dispose()
이 작동하지 않습니다.
이것의 최종 결과는 다음과 같습니다. 이것은 내가 실천할 수있는 열악한 방법으로 더 나은 관행과 유연성을 위해 변경 한 것입니다. 최종 답변은 - 다른 방식으로하십시오. – Elsa