此脚本片段正在访问功能内的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 }
}
我怀疑SPWeb对象不会自动在管道的端部设置的,并导致了内存泄漏。
如何处理在管道中创建的对象?我甚至需要吗?
仅供参考:$x
没有名为'Dispose'的方法,因此$x.Dispose()
不起作用。
最终的结果是:这是一种糟糕的方式来完成我开始做的事情,我改变了它以获得更好的实践和灵活性。最终答案是 - 以另一种方式做。 – Elsa 2013-06-27 19:46:27